본문 바로가기

프로그램/oracle

TOAD를 이용하여 ORACLE EXPORT, IMPORT

반응형

* 목적

TOAD 를 이용하여 A 계정에서 TABLE을 복사하여 B계정으로 옮김


토드 10.5 버젼일 경우에는 아래 부분 참조


* 내용

1. EXPORT

1. MENU -> DATABASE -> EXPORT -> EXPORT UTILITY WIZARD 

2. EXPORT TABLE SELECT -> NEXT

3. TABLE SELECT -> NEXT

4. 가장 하단의 1000row feedback 를 10,000 으로 변경 -> NEXT

5. DUMP파일 선택하여 NEXT 


2. IMPORT

1. MENU -> DATABASE -> IMPORT -> IMPORT UTILITY WIZARD 

2. IMPORT TABLE SELECT -> NEXT

3. FROM USER 에 INPUT USER -> NEXT

4. 가장 하단의 1000row feedback 를 10,000 으로 변경 -> NEXT

5. DUMP파일 선택하여 NEXT 


25만건 넘기는데 오래 걸리지 않음

어느정도 건수가 있는 경우 이 방법을 사용해야 할꺼 같음



예전에 써놓은게 있어서 참고하려고 하니 토드 버전이 달라서 화면이 다름.;;

 

  • 토드버젼 : 10.5.1.3
  • 오라클버젼 : 10g

 

 

당황하지 않고 대강 해보려고 했으나 엑셀 삽질로 대 실패-_-;;

 

결론부터 말하면 엑셀 2013 으로 만든 파일을 읽다가 계속 토드가 사망했다.(건수 3만건 정도)

 

설마 하면서 건수를 100건으로 줄여서 엑셀을 읽어보니 잘 됨-_-

 

다시 엑셀 내용을 텍스트파일로 붙여넣고 해보니 3만건 처리 시 5분 소요됨

 

 

1.     DataBase – Import – Import Table Data 선택

2.     Object Name 선택 후 Show Data 버튼 클릭 후 Next



3.     Text 파일 선택(Text 파일 선택 시 3만건 처리 시 5분 걸림) Next



 

4.     구분자 선택 후 Next



 

5.     그 다음부터는 대강 Next – Next – Next 하면 됨

(중간에 컬럼 매핑하는 화면 있는데 이건 그냥 대강 보면 알 것 같아서 PASS)

 


대용량 insert 시 (3만건이 대용량은 아니지만.ㅠㅠ)

 

알아본 이유는 생짜 Insert 쿼리에 Append 힌트를 이용하여 처리를 하라고 하길래 그렇게 할라 했더니

Oracle 10g Insert Value Append 가 무시된다고 해서 충격받아 비교해봄

 

제일 빠른 방법은 insert할 데이터를 union all 로 처리해서 이를 insert /*+append*/ select 형태로 바꾸는 것임

-       1만건 돌리니 토드가 사망해서 5천건 단위로 끊어서 돌려야 하는 불편함이 있음-_-

-       다만 5천건 처리시 대량 10초 걸리는 듯 함


그다음은 그냥 toad import 사용


최악은 insert 쿼리 만들어서 돌리는 것임

 

앞으로 왠만함 그냥 Toad import 를 사용해야 할 것 같음

(예전 버전에서는 한글이나 이런 문제 때문에 자꾸 오류가 나서 사용을 하지 않았었음)