[Dev] oracleのsqlldr

in japanese •  8 hours ago 

■コマンドラインに、テーブル名指定(入力ファイル名は省略)、制御ファイルなし

cat << EEE >xxx.dat
1,9,1234567890
2,9,9999999999
EEE

--
sqlldr hogeuser/passw0rd@//localhost/pdb01 table=xxx

■コマンドラインに、テーブル名指定(入力ファイル名は省略)、入力ファイル名指定(プロセス置換)

sqlldr hogeuser/passw0rd@//localhost/pdb01 table=xxx data=<(cat << EEE
1,9,1234567890
2,9,9999999999
EEE)

■制御ファイルあり

sqlldr hogeuser/passw0rd@//localhost/pdb01 data=xxx.dat control=<(cat << EEE
LOAD DATA TRUNCATE INTO TABLE XXX FIELDS TERMINATED BY ',' (AAA,"BBB" FILLER,CCC) 
EEE)

■コマンドラインに、制御ファイル名を指定、制御ファイルに、入力ファイル名を指定する方法

cat << EEE >xxx.ctl
LOAD DATA INFILE xxx.dat TRUNCATE INTO TABLE XXX FIELDS TERMINATED BY ',' (AAA,BBB,CCC)
EEE

--
sqlldr hogeuser/passw0rd@//localhost/pdb01 control=xxx.ctl

■制御ファイルに、入力ファイル名を指定する方法

sqlldr hogeuser/passw0rd@//localhost/pdb01 control=<(
cat << EEE
LOAD DATA INFILE xxx.dat TRUNCATE INTO TABLE XXX FIELDS TERMINATED BY ',' (AAA,BBB,CCC)
EEE)

■コマンドラインに、入力ファイル名、制御ファイル名(プロセス置換)を指定する方法

sqlldr hogeuser/passw0rd@//localhost/pdb01 data=xxx.dat control=<(
cat << EEE
LOAD DATA TRUNCATE INTO TABLE XXX FIELDS TERMINATED BY ',' (AAA,BBB,CCC)
EEE)

■コンテナー内のコマンドを実行
docker exec -it oracle21c bash ※コンテナ例:oracle21c

■テーブル作成

drop table xxx;
create table xxx (
"AAA" VARCHAR2(10)  NOT NULL ENABLE,
"BBB" VARCHAR2(10),
"CCC" VARCHAR2(10),
PRIMARY KEY (AAA)
);

参考記事
https://techblog.raccoon.ne.jp/archives/53726690.html

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!