我最初在超級用戶上問過這個問題,但有人建議我在這裏重新發布。在Oracle中導入CSV數據(嘗試Apex/SQL Developer)
我正在使用最新版本的APEX(4.1.1)和Oracle(11.2.0.3)。我上傳CSV數據到一組表格。 我一直在嘗試它,並遇到一些我從未見過的問題。
作爲一個例子,我試圖將數據導入到該表中:
CREATE TABLE SW_ENGINEER
(ENGINEER_NO VARCHAR2(10),
ENGINEER_NAME VARCHAR2(50),
CONSTRAINT SW_ENG_PK PRIMARY KEY (ENGINEER_NO))
它無法在這個簡化的數據子集:
call log no,contract_no,call date,agreed date,agreed time,actual arrive,engineer no,engineer name,equipment code,cust desc,eng desc
a,b,c,22-Mar-06,1,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,22-Mar-06,2,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,19-Mar-06,3,19/03/2006 09:15,351,Rory Juarez,d,e,f
(它無法在更大的數據集相同的方式) 我不能與任何APEX或SQL Developer中加載它,如下所示:
- APEX:隨着APEX數據工作購物,導入文本,加載現有表格,使用逗號分隔,選擇表格和文件,勾選'標題行'複選框,我們的列映射表單顯示正確的數據。然後將除engineer_no和engineer_name之外的所有列設置爲「否」,然後單擊Load Data。
這似乎工作,並顯示在文本數據加載存儲庫中的彙總行,但在檢查它已加載0行和79失敗。點擊79表示他們都遭受「ORA-01008:並非所有變量都綁定」。所選列對我來說看起來不錯,所以我想知道它是否還包括其他一些,儘管「否」設置?
如果我在上傳之前編輯csv以刪除不相關的列,則不會發生此問題,但如果我可以使用列映射,則會更容易。
- SQL開發人員:在SD使用導入數據嚮導,我發現,除非標題行被選中它不會發展成列映射(?按鈕已啓用,但不工作 - 爲什麼不), - 但是如果它被檢查(在這種情況下正確),那麼驗證步驟失敗,因爲「表格列工程師沒有足夠大......」。
我發現可以通過從csv文件列中刪除標題值來克服。所以看起來,設置標題行復選框實際上並不會導致它忽略標題行,並且它是導致錯誤的標題值'engineer-no'。這對我來說不太合適。 我過去曾使用過這兩種方法,但我想知道最近的升級是否與此有關。
任何想法?還是我錯過了明顯的東西?
csv文件中的任何字段中是否有','? – MatBailie 2012-03-30 10:43:09
是的,但之後它們被引用「like,this」 – boisvert 2012-03-30 10:44:37
您是否測試過簡單1或2行的csv沒有這樣的字段,另外1行或2行的csv有這樣的字段?如果前者失敗了,你就會遇到更大的問題,如果前者成功,後者失敗,你就隔離了這個問題。在你的數據中還有一些其他的特性,用Excel或其他軟件分析它 – MatBailie 2012-03-30 10:46:31