TM
2011.10.11 14:08

long type column

조회 수 17678 추천 수 0 댓글 1

logical corruption시 table move 작업시에 long type column 이 있어 move가 안됨.

 

문제 설명            
=========
 LONG COLUMN을 가진 테이블을 COPY를 해야 하는 경우 LONG COLUMN은 Subquery
 를 사용할 수 없기 때문에 다음과 같은 현상이 발생한다.
 
  1. "CREATE TABLE ... AS SELECT ..." 명령이나
     "INSERT INTO ... SELECT ..."
      를 사용하는 경우 ORA-0997 에러가 발생한다.

  2. SQL*Plus의 COPY 명령을 사용하는 경우 CPY0005 에러가 발생한다.
 
해결 방법 
=========
 가장 쉬운 방법은 PL/SQL에서 VARCHAR2 혹은 LONG DATA TYPE을 이용하여 COPY
한다. PL/SQL에서 VARCHAR2 및 LONG 변수는 32K까지 사용할 수 있기 때문에
32K 이하 데이타라면 가능하고 그 이상의 데이타는 3GL을  이용한다.

 

copy 됩니다.

 

idel> copy from scott/tiger@ora9i to scott/tiger@ora9i -
> create longtab3 -
> using select * from longtab;   

Array fetch/bind size is 15. (arraysize is 15)
Will commit when done. (copycommit is 0)
Maximum long size is 5000. (long is 5000)
Table LONGTAB3 created.

   3 rows selected from scott@ora9i.
   3 rows inserted into LONGTAB3.
   3 rows committed into LONGTAB3 at scott@ora9i.

 

idel> desc A_APP_CONTENT
 Name          Null?   Type
 ----------------  -------- -------------------------------------------------
 APPID          NOT NULL VARCHAR2(40)
 ITEMID          NOT NULL VARCHAR2(20)
 ITEMVALUE           LONG

 

idel> select * from a_app_content

APPID          ITEMID     ITEMVALUE
------- ---------------------------------------- ------------------------------
fekskfj          fekjfi     eifslkjlsglksakejlkjsalfj

 

idel> DECLARE 
  string1 varchar2(20);
  string2 varchar2(40);
  string3 varchar2(32000);
  cursor c1 is
  SELECT appid, itemid,itemvalue FROM t_app_content;
BEGIN
  OPEN c1;
  LOOP
    FETCH c1 INTO string1,string2,string3;
    exit when c1%NOTFOUND;
    INSERT INTO t_app_contents VALUES (string1,string2,string3);
  END LOOP;
  COMMIt;
END;

PL/SQL procedure successfully completed.

 

idel> select * from a_app_contents;

APPID          ITEMID     ITEMVALUE
--------- --------- ------------------------------
fekskfj          fekjfi     eifslkjlsglksakejlkjsalfj

 

실 DB에선 분명히 안됬었는데 테스트 하니 바로 되는군요;;

TAG •

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 Q&A Oracle관련 게시물만 Sean 2014.04.09 84839
20 자료 instance 여러개인 경우 profile 보기 편하게 수정 1 유주환 2010.04.18 8634
19 자료 Data_Pump 세미나자료 file 고구마 2010.04.09 7658
18 자료 Flashback 10g 1 file 고구마 2010.04.09 6289
17 자료 ASM 1 file 고구마 2010.04.09 6765
16 자료 solaris sparc 64bit oracle 10.2.0.1 file 김준호 2010.03.29 6975
15 Q&A import후 simple_size 0일때 고구마 2014.01.13 3194
14 Q&A [답변] 테이블 수정, 삭제 및 LOB에 대해 알려주세요 Tech1 2012.03.26 10635
13 Q&A ORACLE_BASE, ORACLE_HOME 각각의 위치에 대한 설명 부탁드립니다 Tech1 2012.03.20 10823
12 Q&A 파티션 테이블에 대해서 몇가지 궁금합니다. 1 고구마 2011.06.13 11694
11 Q&A Local Prefixed와 Local Non-Prefixed index 차이 ? 1 고구마 2011.06.13 9596
10 Q&A 파티션 테이블 종류가 뭐가 있나요? 1 고구마 2011.06.13 10338
9 Q&A RAC 쿼리 속도 관련 질문입니다. 3 고구마 2011.05.20 8967
8 Q&A ORA--04031 에러에 대해 질문합니다. 4 고구마 2011.05.17 12589
7 Q&A 오라클 프로세스에 대해서 궁금합니다. 4 고구마 2011.05.04 11170
6 Q&A 패키지 BODY 관련 질문 3 고구마 2011.05.03 10162
5 Q&A alert_log는 5 perfstat 2011.04.22 8071
4 Q&A RHEL5에 11gR2 RAC 구성시 ASM 관련 에러 file 송기성 2010.12.11 17670
3 Q&A 서버교체에 관해서.. 1 명랑여행 2010.08.20 9641
2 Q&A 오라클 유저 삭제가 안될시? 4 명랑여행 2010.05.27 11534
1 Q&A 업그레이드 이후 안됨 3 유주환 2010.04.23 10382
Board Pagination Prev 1 ... 3 4 5 6 7 8 Next
/ 8