SQLローダーを使用してデータをロードしようとしていますが、エラーが発生しています。ロードするSQLローダーエラー - データエラーのためローがロードされない
表 -
CREATE TABLE TEST_PIPE_SEP (FILE_NAME VARCHAR2(3000), KEY_COL VARCHAR2(4000), DESCR VARCHAR2(100), RUN_DATE DATE);
私は現在の処理ファイルを取得し、FILE_NAME列のデフォルト値として渡すことができるように、私はシェルとSEDのコマンドを使用して動的CTLファイルを作成しています。後に作成されます新しいファイル
LOAD DATA
CHARACTERSET WE8ISO8859P1
APPEND
INTO TABLE TEST_PIPE_SEP
FIELDS TERMINATED BY ','
(
#file_name#
key_col "trim(:key_col)",
descr "trim(:descr)",
run_date "SYSDATE"
)
- test.ctlの形式は、私は現在の処理ファイル名を渡すためにSEDを使用して実行時間を上の編集をしていた下記の通りである
#!/bin/ksh
echo "starting script"
#cd data
for i in data/Key_Mismatch_Output_UAT*.csv
do
#echo "$i"
filename=`basename "${i}"`
echo "$filename"
#sed '1d' "$i" >> test.csv
sed -e "s/#file_name#/file_name \"${filename}\",/g" test.ctl > new_test_3.ctl
sqlldr ERRORS=100000 userid=$USER_CRED control=new_test_3.ctl data=data/$filename silent=all log=data/$filename".log" bad=data/$filename.bad skip=1
wait
done
echo "ending script"
CSVファイル
LOAD DATA
CHARACTERSET WE8ISO8859P1
APPEND
INTO TABLE TEST_PIPE_SEP
FIELDS TERMINATED BY ','
(
file_name "Key_Mismatch_Output_UAT.csv.20170804070448.1_LIVE.csv.20170804070448.2_20170804070448.csv",
key_col "trim(:key_col)",
descr "trim(:descr)",
run_date "SYSDATE"
)
、その含まれています - - SED称賛は以下の通りである
Key Columns,Description
"C"|"G000053929"|"ABCD"|"G000053929"|""|""|"TTA"|""|""|""|""|""|"DRR"|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|"",Not Present in file1
"C"|"G000053621"|"HGHQ"|"G000053621"|""|""|"CBI"|""|""|""|""|""|"DRR"|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|"",Not Present in file2
"C"|"G000053929"|"HGHQ"|"G000053929"|""|""|"TTA"|""|""|""|""|""|"DRR"|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|""|"",Not Present in file2
と、私はエラーの下に取得し、ルート原因を見つけることができないのですがより多くの情報が必要な場合は私に聞いてくださいCTLはデータ
Table TEST_PIPE_SEP, loaded from every logical record.
Insert option in effect for this table: APPEND
Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
FILE_NAME FIRST * , CHARACTER
SQL string for column : "TRIM('Key_20170804070448.csv')"
KEY_COL NEXT * , CHARACTER
DESCR NEXT * , CHARACTER
RUN_DATE NEXT * , CHARACTER
SQL string for column : "SYSDATE"
Table TEST_PIPE_SEP:
0 Rows successfully loaded.
1 Row not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
をロードすることができる限りではなく、ファイル変更しようとしました。
私は
Oracle Database 11gのEnterprise Editionのリリース11.2.0.4.0を使用しています - 64ビットの生産
感謝。 CONSTANTキーワードを使ってみましたが、同じエラーが出ます。 シナリオを正常に実行しましたか?使用しているCTLファイルの例を教えてください。はい、私はCTL構造を修正して、NULLCOLSを追加します。 – mradul
@mradulはい私はうまくいった。 – etsa
@mradulにログctlとサンプルデータ(あなたの行と別の行)を追加しました – etsa