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
40 Tip 오라클 업그레이드 메뉴얼 1 file perfstat 2012.02.06 11894
39 Tip LIBRARY CACHE PIN 고구마 2011.11.10 12949
38 Tip ORACLE 10G CONVERTING TABLESPACES WITH THE RMAN CONVERT 1 흑수건 2011.10.20 11949
37 Tip 11g alertlog 1 흑수건 2011.10.06 14201
36 Tip DATABASE에 CONNECT안될때 SYSTEMSTATE DUMP하는법 흑수건 2011.10.06 10653
35 Tip [10g]DATAPUMP IMPORT는 자동으로 USER 생성 흑수건 2011.10.06 16015
34 Tip [11g] New Feature : Invisible Index 1 흑수건 2011.10.06 11355
33 Tip EXPORT의 Query Option 기능 흑수건 2011.10.01 11840
32 Tip 특정 DB USER의 SESSION수를 제한하는 방법 흑수건 2011.10.01 12356
31 Tip 오라클상세 버젼 확인하기 lsinventory 고구마 2011.09.14 13837
30 Tip Windows 32bit OS 메모리 제약과 Oracle 에서 추가메모리 사용하도록 흑수건 2011.09.04 15745
29 Tip SESSIONS: derived (1.1 * PROCESSES + 5) 흑수건 2011.08.30 11322
28 Tip cpu 사용이 높을때 흑수건 2011.08.30 11489
27 Tip hardparse 발생및 세션 검사 2 도로시 2011.08.17 12658
26 Tip ora-3113 에러 분석 접근관련... 고구마 2011.06.14 12787
25 Tip 오라클 제품 비교 file 송기성 2011.05.22 13410
24 자료 oracle 문제발생시 대처 가이드 2 file dbkill 2011.05.16 5636
23 자료 ORA-600 metalink notes for help file dbkill 2011.03.29 7634
22 자료 C컴파일시 makefile의 구조설명 file 김준호 2010.04.22 7220
21 자료 윈도우 tail 사용법 1 file 유주환 2010.04.19 7361
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8