2013-08-21 55 views
1

更新:我的問題解決了,只是想添加這個我偶然發現的有用代碼。這將幫助您更輕鬆地創建.ctl文件。希望這對那裏的一些人有用。SQL加載程序缺少逗號錯誤

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加載器來更好地理解它,到目前爲止它一直很有趣。我現在的主要問題是雖然它說42行已經被提交,但我的表仍然是空的。

**僅供參考,我使用excel電子表格保存爲.csv。我在練習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') 

這裏是破譯死亡的可怕的一個行後有什麼日誌顯示:

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 

現在,我已經在網上淘試圖找到什麼可能是這個錯誤的原因,但我什麼都沒有提出。任何人都可以指出我的方向嗎?

另外一個問題,是否可以格式化日誌,以便它看起來不可怕?

+0

與嘗試一次只有一個字段,不斷添加字段,直到找到問題爲止,而且,只使用2條記錄,而不是10條。 –

回答

1

收在這條線的括號:

TRANSACTION_DATE 「TO_DATE(:TRANSACTION_DATE, 'DD_MON_YY'」,

TRANSACTION_DATE 「TO_DATE(:TRANSACTION_DATE, 'DD_MON_YY')」,

+0

-_-不能相信我錯過了這一點,謝謝你指出這一點 – user2405778

+2

有時它只是一個不同的一雙眼睛... – BWS