SSISO Community

시소당

COPY명령을 이용한 오라클 테이블 복사 Oracle DB

COPY명령을  이용한  오라클  테이블  복사  Oracle  DB    
2007/01/12  14:44

http://blog.naver.com/underline/130013307096

오라클  8이상  부터는  SQL*Plus에서  COPY라는  명령어를  이용해서  테이블을  복사  할  수  있는  기능도  제공을  합니다.  

그런데  COPY명령어는  SQL*Net이  설치되어  있어야지만  사용할  수  있습니다.
SQL*Net만  설치되어  있다면  다른  DB의  테이블도  복사를  해  올  수가  있습니다.
그리고  SQL*Plus에서만  사용할  수  있습니다.
문법을  살펴보면은요..

SQL>  COPY  FROM  복사할유저명/암호@SID  CREATE  생성할테이블명  USING  원본테이블질의  

예제:
SQL>  COPY  FROM  scott/tiger@oracle  CREATE  emp2  USING  select  *  from  emp;
위의  방법은  데이터를  복사하면서  테이블을  생성하는  방법이고  기존에  생성되어  있는  테이블에  데이터만  복사할  수  도  있습니다.
SQL>  COPY  FROM  scott/tiger@oracle  CREATE  emp2  USING  select  *  FROM  emp;
이  문법에서  CREATE를  INSERT로  바꿔  주시면  됩니다.  

SQL>  COPY  FROM  scott/tiger@oracle  INSERT  tmp2  USING  select  *  from  emp;
이렇게  하시면  됩니다.  

---  네이버  카페중에  올라온  글을  좀  줄여서  썼습니다...  복사가  안되서..ㅡㅡ;  

ps.  long형  복사할려고  한거였는데  컬럼의  데이터가  짤리더군요
이거저거  찾아보다가  SQL*Plus의  환경을  좀  바꿔주니까  되네요
set  long  100000  --(복사할  long형의  최대  데이터보다  크게)
set  longc  100000  --(복사할  long형의  최대  데이터보다  크게)  

게시판의  내용컬럼이  long형이어서  그나마  얼마  크지  않은  용량이라  다행..ㅡㅡ;
이거  가지고  이틀을  끙끙댔네..쩝
p.s2  이거  long  raw등의  BLOB에는  적용안되네...ㅡㅡ;  젠장..  ==========================================================================================

재정리  2007_12_01

==========================================================================================

이  당시  imp/exp  개념이  부족해서  이렇게  했었는데

그냥  export  받아서  데이터만  import하고  나중에  constraint  설정등을  해주는게  더  쉬울듯

table,  index  등의  스크립트를  먼저  작성하고  import한다음에  해당  스크립트  돌려주면  끝!!!

5236 view

4.0 stars