English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Oracle에서 텍스트 파일을 빠르게批量导入하는 방법(sqlldr 구현)

서론

최근 프로젝트를 진행하면서 일批量 데이터를 입력해야 했습니다3000만多条의 POI 데이터를 Oracle 데이터베이스에 저장했습니다. 간단한 삽입 및 입력 속도가 너무 느릅니다. sqlldr를 사용하여 대량 입력을 합니다3000만多条 데이터가 걸렸습니다20분 정도, 속도는 괜찮습니다. 지금 여러분과 공유합니다. 구체적인 방법은 다음과 같습니다:

1. 새로운 입력 제어 파일 input.ctl을 만들어서, 파일 내용은 다음과 같습니다:

데이터 로드
UTF 코드셋8
Infile 'H:\POI\baidu.txt'
Append into table tbl_poi_baidu
fields terminated by ","
Optionally enclosed by '""'
Trailing nullcols
(POI_NAME,CLASS_ALL,ADDR,PHONE,TEL,LONGITUDE,LATITUDE,CITY,CITYCODE,PROVINCE,DISTRICT,STREET,STREENUMBER,CLASS_1,CLASS_2,CLASS_3,CLASS_4)

2. 명령 프롬프트 창에 입력:

sqlldr userid=sde/sde control=input.ctl log=log.out discard=discard.txt errors=1000000 

주의:파일 문자 집합은 Oracle 서비스와의 문자 집합과 일치해야하며, UTF로 파일을 다시 저장하는 것이 좋습니다.-8No BOM, 파일 내에 Characterset UTF 추가8 ,Oracle 데이터 가져오기 중 중국어 맵핑 문제 해결: export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL'32UTF8'

DOS 환경에서 파일 빠르게 병합: copy *.csv newfile.txt

결론

이것이 이 기사의 모든 내용입니다. 이를 통해 Oracle 데이터베이스를 배우거나 사용하는 데 도움이 되길 바랍니다. 의문이 있으면 댓글을 통해 교류해 주세요.

선언: 이 글의 내용은 인터넷에서 가져왔으며, 저작권자는 모두입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 위반 내용이 있으면 이메일을 보내 주시기 바랍니다: notice#oldtoolbag.com(이메일을 보내면, #을 @으로 변경하십시오. 신고하시고 관련 증거를 제공하시면, 사이트가 즉시 위반 내용을 삭제합니다.

좋아하는 것