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
160 Tip 화일의 손상 여부를 확인하는 dbv 사용 방법 김준호 2010.04.06 18472
159 Tip 핫백업 디비올리기 유주환 2010.04.09 34980
158 Q&A 패키지 BODY 관련 질문 3 고구마 2011.05.03 10162
157 Q&A 파티션 테이블에 대해서 몇가지 궁금합니다. 1 고구마 2011.06.13 11694
156 Q&A 파티션 테이블 종류가 뭐가 있나요? 1 고구마 2011.06.13 10338
155 Tip 특정 DB USER의 SESSION수를 제한하는 방법 흑수건 2011.10.01 12356
154 Tip 통계복원하기 고구마 2013.05.13 8032
153 Tip 통계 백업 및 생성 유주환 2010.04.18 16172
152 TM 테이블과 인덱스의 관계 및 인덱스 종류 및 생성 방법. Tech1 2012.03.28 25499
151 TM 테이블 생성방법 및 각종옵션 Tech1 2012.03.20 20703
150 Tip 쿼리 튜닝 사례 고구마 2011.03.21 14449
149 Tip 유저별 Segment 개수 및 사이즈 조회 쿼리, n2bfree 2013.03.12 10925
148 Tip 윈도우에서 일정기간 지난 파일 및 폴더 자동삭제 하기 1 송기성 2011.03.31 21209
147 자료 윈도우 tail 사용법 1 file 유주환 2010.04.19 7361
146 Tip 오라클상세 버젼 확인하기 lsinventory 고구마 2011.09.14 13837
145 Tip 오라클11g에서 SE1,SE,EE제품의 옵션비교입니다. file perfstat 2012.03.07 27004
144 Q&A 오라클 프로세스에 대해서 궁금합니다. 4 고구마 2011.05.04 11170
143 Tip 오라클 튜닝 세미나자료 (메모리) file 고구마 2010.04.28 14662
142 Tip 오라클 튜닝 세미나 자료(IO) 1 file 고구마 2010.04.28 13927
141 Tip 오라클 제품 비교 file 송기성 2011.05.22 13410
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8