■コマンドラインに、テーブル名指定(入力ファイル名は省略)、制御ファイルなし
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)
);