2016-12-13 118 views
0

我試圖插入使用Bulk Insert查詢值到Oracle表,但得到以下錯誤無效的表名,而在oracle中批量插入

ORA-00903: invalid table name 
00903. 00000 - "invalid table name" 
*Cause:  
*Action: 
Error at Line: 4 Column: 5 

這裏是我的查詢

BULK INSERT TEST1.STUDENT 
    FROM 'C:\Users\Alan\Desktop\STUDENT.txt' 
     WITH 
(
      FIELDTERMINATOR = '\t', 
      ROWTERMINATOR = '\n' 
); 

爲什麼會有這樣的錯誤來了。查詢有問題嗎?請幫忙。由於

更新

我通過改變文件格式CSV及以下查詢

LOAD DATA 
INFILE 'C:\Users\Alan\Desktop\STUDENT.csv' 
INTO TABLE TEST1.STUDENT 
FIELDS TERMINATED BY "," 
(ID, 
NAME); 

寫,但上面的查詢是給

ORA-00928: missing SELECT keyword 
00928. 00000 - "missing SELECT keyword" 
*Cause:  
*Action: 
Error at Line: 16 Column: 2 

有什麼不對上述語法?

+3

這完全不是Oracle語法。 – Kacper

回答

3

這不是Oracle語法。如果您需要從文件加載數據到表請用兩種SQLoaderExternal table
有些文檔約External tableSQLoader

如果您使用的SQLDeveloper你也可以使用進口設備。

請再看看那thread

[EDIT}

LOAD DATA 
INFILE 'C:\Users\Alan\Desktop\STUDENT.csv' 
INTO TABLE TEST1.STUDENT 
FIELDS TERMINATED BY "," 
(ID, 
NAME); 

這不是一個查詢。這是控制文件的內容。請保存到文件load.csv然後運行cmd(或shell,如果在Linux上yuo're)和類型:

sqlldr user/pass control=load.ctl 

一些例子,你可以找到here

+0

我已根據SO回答更新了我的帖子,但更新錯誤。請查看更新後的查詢和錯誤。更新後的查詢有什麼問題?謝謝 – Lara

+0

@Lara我編輯了答案,並添加了如何運行SQLoader的示例。你使用什麼客戶端/ IDE? – Kacper

+0

明白了。謝謝 – Lara