Oracle一括テキストファイルのインポートの迅速な方法(sqlldr実装)

1096 ワード

前言
最近のプロジェクトでは、3,000万件以上のPOIデータをOracleデータベースにインポートする必要があります.簡単な挿入インポート速度が遅すぎます.sqlldrを使用して3,000万件以上のデータを一括インポートするのに20分ほどかかりました.速度はまあまあです.今、皆さんに共有します.具体的な方法は以下の通りです.
1.新規インポート制御ファイルinput.ctl、ファイルの内容は以下の通りです.

Load data
Characterset UTF8
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-8として保存することを推奨します.インポートファイルにはCharacterset UTF8 を追加し、Oracleデータの中国語文字化けしを解決します.export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8' DOS環境でのファイルのクイックマージ: copy *.csv newfile.txtまとめ
以上がこの記事のすべてですが、Oracleデータベースの学習や使用に役立つことを願っています.質問があれば、伝言を残して交流してください.