아무옵션 없이 sqlldr 명령어만 실행하면 옵션들이 나옵니다.
[oracle@localhost ~]$ sqlldr SQL*Loader: Release 11.2.0.2.0 - Production on Thu Mar 28 04:02:10 2013 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Usage: SQLLDR keyword=value [,keyword=value,...] Valid Keywords: userid -- ORACLE username/password control -- control file name log -- log file name bad -- bad file name data -- data file name discard -- discard file name discardmax -- number of discards to allow (Default all) skip -- number of logical records to skip (Default 0) load -- number of logical records to load (Default all) errors -- number of errors to allow (Default 50) rows -- number of rows in conventional path bind array or between direct path data saves (Default: Conventional path 64, Direct path all) bindsize -- size of conventional path bind array in bytes (Default 256000) silent -- suppress messages during run (header,feedback,errors,discards,partitions) direct -- use direct path (Default FALSE) parfile -- parameter file: name of file that contains parameter specifications parallel -- do parallel load (Default FALSE) file -- file to allocate extents from skip_unusable_indexes -- disallow/allow unusable indexes or index partitions (Default FALSE) skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable (Default FALSE) commit_discontinued -- commit loaded rows when load is discontinued (Default FALSE) readsize -- size of read buffer (Default 1048576) external_table -- use external table for load; NOT_USED, GENERATE_ONLY, EXECUTE (Default NOT_USED) columnarrayrows -- number of rows for direct path column array (Default 5000) streamsize -- size of direct path stream buffer in bytes (Default 256000) multithreading -- use multithreading in direct path resumable -- enable or disable resumable for current session (Default FALSE) resumable_name -- text string to help identify resumable statement resumable_timeout -- wait time (in seconds) for RESUMABLE (Default 7200) date_cache -- size (in entries) of date conversion cache (Default 1000) no_index_errors -- abort load on any index errors (Default FALSE) PLEASE NOTE: Command-line parameters may be specified either by position or by keywords. An example of the former case is 'sqlldr scott/tiger foo'; an example of the latter is 'sqlldr control=foo userid=scott/tiger'. One may specify parameters by position before but not after parameters specified by keywords. For example, 'sqlldr scott/tiger control=foo logfile=log' is allowed, but 'sqlldr scott/tiger control=foo log' is not, even though the position of the parameter 'log' is correct. [oracle@localhost ~]$위 값중에 errors 값이 default 50으로 되어있는데 50값보다 많은 에러가 발생하면 작업이 중단되어
더 이상 진행이 되지 않는다는 의미 이므로 옵션을 줄때 아주 충분히 값을 지정해 작업해야 합니다.
1) SQL*Loader 실습 1 - 입력할 데이터가 외부 프로그램 자료일 경우
(아래 그림의 엑셀 데이터를 오라클의 F_Animal 테이블로 입력할 경우)
엑셀을 열어서 위와 같이 데이터를 입력했습니다.
위의 엑셀 데이터를 csv(쉼표로구분) 파일로 저장합니다. 그리고 파일이름은 a1으로 하겠습니다.
저장이 완료 된 파일은 winscp나 xftp를 이용해서 oracle home의 원하는 디렉토리에 옮깁니다.
SQL> !vi /app/oracle/tran_ex/tran.cvs 15,Heracules baboon,21cm,Hysterocrates hercules,사나움,보통,나이지리아,10년이상,버로우 16,King baboon,23cm,Citharischius crawshayi,사나움,빠름,탄자니아 케냐 등,15년,버로우 ~ ~vi editor를 이용해 xftp로 옮긴 tran.csv파일을 연다.
필요한것만 빼고 위처럼 만들어준 후에 저장 종료한다.
control file
SQL> !vi /app/oracle/tran_ex/tran.ctl load data infile "/app/oracle/tran_ex/tran.csv" append into table taran fields terminated by ',' (no,name,max_size,technical_name,personality,growth,habitat,max_age,type) ~ ~위처럼 control file 만들어준후에 저장종료한다.
이제 데이터를 넣을 테이블을 만들어주면 된다.
SQL> create table taran 2 (no number, 3 name varchar2(50), 4 max_size varchar2(50), 5 technical_name varchar2(50), 6 personality varchar2(50), 7 growth varchar2(50), 8 habitat varchar2(50), 9 max_age varchar2(50), 10 type varchar2(10)) to tablespace spider; created table테이블을 생성했으면 이제 데이터를 넣어주면 된다.
[oracle@dbserver ~]$ [oracle@dbserver ~]$ sqlldr scott/tiger control='/app/oracle/tran_ex/tran.ctl' SQL*Loader: Release 11.2.0.2.0 - Production on Tue Nov 11 09:12:39 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Commit point reached - logical record count 2 [oracle@dbserver ~]$2개의 데이터가 들어갔다.
확인해보자
SQL> select * from taran 2 order by 1; NO NAME MAX_SIZE TECHNICAL_NAME PERSONALIT GROWTH HABITAT MAX_AGE TYPE ---- ----------------------------------- -------- ------------------------------ ---------- ---------- ------------------------------ --------------- ---------- 0 Mexican Golden Redrump 15cm Brachypelma ruhnaui 온순함 느림 멕시코 20년이상 배회성 1 Mexican_Redknee 13cm Brachypelma_smithi 온순함 느림 멕시코 15년 이상 배회성 2 Mexican_redleg 15cm Brachypelma_emilia 온순함 느림 멕시코 15년 이상 배회성 3 Antilles Pinktoe 14cm Avicularia versicolor 예민함 보통 마티니크섬 14년 나무위성 4 Giant Mustard stripe 18cm Grammastola aureostriatum 온순함 보통 프랑스챠코 20년 이상 배회성 5 Mexican Pink 15cm Brachypelma Klaasi 온순함 느림 멕시코 20년 이상 배회성 6 Mexican flame knee 15cm Brachypelma Klaasi 온순함 느림 멕시코 20년 이상 배회성 7 Mexico Fireleg 14cm Brachypelma Klaasi 온순함 느림 멕시코 20년 이상 배회성 8 Costa Rican Zebra 12cm Aphonopelma seemani 온순함 보통 파나마 과태말라 열대우림 20년 이상 배회성 9 Brazillian giant white knee 22cm Acanthoscurria geniculata 보통 빠름 브라질 아마존 15년 배회성 10 Mexican true red leg 13cm Brachypelma emillia 온순함 보통 멕시코 15년 이상 배회성 11 Goliath birdeater 30cm theraphosa blondi 사나움 빠름 베네수엘라 등 25년 배회성 12 Peruvian Blonde 15cm Lasiodoredes polycuspulatus 온순함 보통 페루 null null 13 Brazillian salmon pink 15cm Lasiodoredes parahybana 공격적 빠름 브라질 20년 배회성 14 Amazon Spaier Pinktoe 12cm Avicularia fasciculata 온순함 보통 브라질 10년이상 나무위성 15 Heracules baboon 21cm Hysterocrates hercules 사나움 보통 나이지리아 10년이상 버로우 16 Usambara Orange Baboon 15cm Pterinochilus Murinus 엄청사나움 엄청빠름 탄자니아 케냐 등 12년 3성 17 King baboon 23cm Citharischius crawshayi 사나움 빠름 탄자니아 케냐 등 15년 버로우 18 rows selected. SQL>데이터가 정상적으로 들어가져 있다.
(*추가적으로 실습하면서 같이 썼던 쿼리들*)
SQL> insert into taran(clumns.....) /데이터 여 넣기 2 values(key....) ------------------------------------------- SQL> alter table taran /type 바꾸기 2 modify(clumns type); ------------------------------------------- SQL> alter table taran /컬럼추가 2 add (clumns type) ------------------------------------------- update taran /업데이트. where절 조심 2 set 변경할 컬럼 = 변경된 값 3 where 조건 -------------------------------------------
'Oracle > SQL' 카테고리의 다른 글
테이블스페이스 소유자 확인 (2) | 2015.01.13 |
---|---|
tablespace생성과 자동으로 사이즈 늘리기 (0) | 2014.11.11 |
중복된 row 데이터 삭제하는 방법 (0) | 2014.11.11 |
[ORA-12988] cannot drop column owned by sys 에러 (0) | 2014.10.31 |
PL/SQL 결과물 출력하기 (0) | 2014.10.31 |