1

更新: 私の問題は解決しました。私が見つけたこの役立つコードを追加したかっただけです。これにより、.ctl ファイルをより簡単に作成できます。うまくいけば、これはそこにいる何人かの人々に役立ちます.

select
'LOAD DATA 
APPEND
INTO TABLE ' || '&TABLE_NAME' ||
' FIELDS TERMINATED BY "~"
TRAILING NULLCOLS
(' "Column Name",' ' "sql_loader_type" from dual
union all
select
COLUMN_NAME,
DECODE(DATA_TYPE,
'TIMESTAMP(6)','TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF",',
'NUMBER','DECIMAL EXTERNAL,',
'VARCHAR2','CHAR,',
'CHAR','CHAR',
'DATE','"TO_DATE(SUBSTR(:' || column_name || ',1,19),''YYYY-MM-DD HH24:MI:SS'')",'
) "sql_loader_type"
from all_tab_cols 
where owner=UPPER('&SCHEMA_NAME') AND TABLE_NAME = UPPER('&TABLE_NAME')
union all
select ')' "Column Name" , '' "sql_loader_type" from dual;

私はSQL Loaderをいじって理解を深めようとしていますが、これまでのところ非常に興味深いものです。現在の主な問題は、42 行がコミットされたと表示されているにもかかわらず、テーブルがまだ空であることです。

** 参考までに、.csv として保存された Excel スプレッドシートを使用しています。私が Excel ファイルで練習している理由は、遅かれ早かれプロジェクトのこのプロセスを自動化するためです。**

ログ ファイルをさらに確認すると、列が見つからないというエラーが表示されます。私のctlファイルの設定方法は次のとおりです。

options (skip=11, errors=10,rows=45)
load DATA
  infile 'location of my file'
  INTO TABLE t_legal_transactions
  fields terminated BY "," optionally enclosed by '"' trailing nullcols
  (ACCOUNT,
   transaction_date "to_date(:transaction_date, 'DD_MON_YY'",
   amount,
   fintran_id,
   attorney_id,
   description,
   ID constant '1',
   batch_id constant '1',
   org_id constant '239')

恐ろしい1行の死を解読した後のログは次のとおりです。

Record 1: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 2: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 3: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 4: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 5: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 6: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 7: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 8: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 9: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma
Record 10: Rejected - Error on table T_LEGAL_TRANSACTIONS, column ORG_ID.
ORA-00917: missing comma

今、私はこのエラーの原因を見つけようとしてインターネットを精査してきましたが、何も思いつきません. ここで誰かが私を正しい方向に向けることができますか?

また、副次的な質問ですが、見にくくないようにログをフォーマットすることは可能ですか?

4

1 に答える 1

1

次の行で括弧を閉じます。

transaction_date "to_date(:transaction_date, 'DD_MON_YY'",

transaction_date "to_date(:transaction_date, 'DD_MON_YY')",

于 2013-08-21T18:54:19.960 に答える