TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-16 |
제목 | LONG COLUMN을 가진 테이블을 COPY | ||
---|---|---|---|
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을 이용한다. < TABLE > SQL> CREATE TABLE LONGTAB(NO NUMBER(2), TEXT LONG); < PL/SQL Script > DECLARE string varchar2(32000); no number(2); cursor c1 is SELECT no, text FROM longtab; BEGIN OPEN c1; LOOP FETCH c1 INTO no, string; exit when c1%NOTFOUND; INSERT INTO longtab2 VALUES (no, string); END LOOP; COMMIt; END; / |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |