SQLLOADERコマンドでCSVファイル、TSVファイルを取り込む方法です。
SQLLOADERコマンドでCSVファイルのデータを取り込む
CTLファイル
OPTIONS ( SKIP = 0 -- スキップ無し(全件取り込む) , DIRECT = TRUE -- ダイレクト・パス・ロード(制約無視の高速取り込み) , ROWS = 1000 -- 1000件単位で登録 ) LOAD DATA INFILE '.\data\TB_SAMPLE.csv' BADFILE '.\data\TB_SAMPLE.bad' DISCARDFILE '.\data\TB_SAMPLE.dsc' TRUNCATE INTO TABLE TB_SAMPLEFIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'( ID , NAME )
SQLLOADERコマンド実行
sqlldr TEST/TEST@localhost/orclpdb CONTROL='./CTL/TB_SAMPLE.CTL' LOG='./LOG/TB_SAMPLE.log'SQL*Loader: Release 12.2.0.1.0 - Production on 火 3月 3 01:09:17 2020 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 使用パス: ダイレクト セーブ・データ・ポイントに達しました - 論理レコード件数1000。 ロードが完了しました - 論理レコード件数1500。 表TB_SAMPLE: 1500 行は正常にロードされました。 確認するログ・ファイル: ./LOG/TB_SAMPLE.log ロードの詳細を参照してください。
SQLLOADERコマンドでTSVファイルのデータを取り込む
CTLファイル
OPTIONS ( SKIP = 0 -- スキップ無し(全件取り込む) , DIRECT = TRUE -- ダイレクト・パス・ロード(制約無視の高速取り込み) , ROWS = 1000 -- 1000件単位で登録 ) LOAD DATA INFILE '.\data\TB_SAMPLE.tsv' BADFILE '.\data\TB_SAMPLE.bad' DISCARDFILE '.\data\TB_SAMPLE.dsc' TRUNCATE INTO TABLE TB_SAMPLEFIELDS TERMINATED BY X'09' TRAILING NULLCOLS( ID , NAME )
SQLLOADERコマンド実行
sqlldr TEST/TEST@localhost/orclpdb CONTROL='./CTL/TB_SAMPLE.CTL' LOG='./LOG/TB_SAMPLE.log'SQL*Loader: Release 12.2.0.1.0 - Production on 火 3月 3 01:10:46 2020 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. 使用パス: ダイレクト セーブ・データ・ポイントに達しました - 論理レコード件数1000。 ロードが完了しました - 論理レコード件数1500。 表TB_SAMPLE: 1500 行は正常にロードされました。 確認するログ・ファイル: ./LOG/TB_SAMPLE.log ロードの詳細を参照してください。
TSVファイルを使った方がダブルクォートの取り込みもできますし、エクセルデータをコピー&ペーストでTSVファイルもサクッと作れるので、TSVファイルとSQLLOADERの組み合わせの方がおすすめです。