기본 콘텐츠로 건너뛰기

라벨이 procedure인 게시물 표시

ORACLE서버간 복사를 위한 팁들..

오라클은 sql을 실행하여 DDL SQL을 만든다거나 하는 것들이 가능한데 문제는 파일로 저장하면 애매한 부분에서 줄넘김이 되면서 에러를 발생시킨다.  이번에 이동해야 하는건 테이블만 12만개나 있어서  하나식 보면서 할 수가 없어 찾아보니.. 여러가지 옵션들이 있어  내 나름대로 정리해 봤다.  #get_ddl.sql set  long  100000 set  head  off set  feed  on set  wrap  on set  linesize  3200 set  pagesize  0 set  trimspool  on set  longchunksize  1024 spool insertout.txt select dbms_metadata.get_dll('TABLE', 'MyTablename', 'MyOwner'); exit long : 한 필드에 표시되는 문자 수. 적으면 내용이 중간에 잘린다.  head off : 필드명을 없앤다.  feed on : 한 필드 내의 줄넘김을 표시한다. off면 한줄만 표시되면서 다음 줄 이후는 잘린다.  wrap on : ?? 기억이;; linesize 3200 : 한 줄에 3200글자까지 지원.. 이게 작으면 오른쪽이 잘린다.  pagesize 0 : 한 줄에 표현하는 페이지.. 숫자가 커도 별로 의미 없이 공백만 생기므로 0으로 설정 trimsppo on : 이건 그냥 붙여봤는데 아직 테스트 안함. lognchunksize 1024 : 오른쪽 글자 잘림을 막아줌(linesize가 있어도 잘리는 경우 이것까지 넣으니까 다음줄로 안넘어가고 옆으로 잘 붙어준다.) spool filename.sql : filename.sql 파일로 출력해준다.  이렇게 처리하면 sql만 들어가기 때문에  echo "exit" >> filename.sql  등으로 exit을 넣어줘야 cli로 실행하는 경우 먹통이 되지 않는다.  Procedure, Function을 복사하