2
我正在使用sql loader加載一個csv文件。其中一列應該是布爾值。但Oracle不支持布爾數據類型。所以我需要添加驗證或約束。當我在列上添加一個約束時,它在直接加載期間會被忽略,因此之後需要手動干預來整理。如果我嘗試在控制文件中使用驗證,sql loader不支持OR運算符,只是AND。所以我不能做什麼當colA ='true'或colA ='false'Oracle sql loader驗證
我看到一些網站曾說過要嘗試類似於下面的內容,但是第一個WHEN子句是唯一被接受並忽略第二個加載。
OPTIONS (direct=true)
load data
TRUNCATE
INTO TABLE TABLE_A
WHEN PAY='false'
FIELDS TERMINATED BY ','
(ID, NAME, PAY)
INTO TABLE TABLE_A
WHEN PAY='true'
FIELDS TERMINATED BY ','
(ID, NAME, PAY)
任何人都可以提供任何幫助。謝謝
感謝大衛,但我不想改變數據的表示。 0 = true且1 = false,將意味着應用程序層發生更多更改以將其更改回來。有沒有其他可能的解決方案? – Seamus 2013-04-26 10:20:10
然後,我不確定你想要做什麼。 – 2013-04-26 10:38:58
我只想將真或假的值加載到表中。當使用sql loader時,沒有內置約束條件,我不能將列定義爲布爾類型來拒絕它們。所以我需要在sql loader中寫一些東西來實現邏輯。如果case匹配,CASE語句允許您更改值,但我沒有看到任何顯示我可以寫入CASE PAY ='false'然後加載INTO的任何位置....如果您知道這樣的方式,一個例子?很多感謝您的意見大衛。 – Seamus 2013-04-26 11:16:18