在oracle中批量插入时表名无效

时间:2016-12-13 14:38:18

标签: sql oracle

我正在尝试使用Bulk Insert查询将值插入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

上述语法有什么问题?

1 个答案:

答案 0 :(得分:3)

这根本不是Oracle语法。如果您需要从文件到表格加载数据,请使用SQLoaderExternal table
有关External tableSQLoader

的一些文档

如果您正在使用SQLDeveloper,还可以使用import facility。

请同时查看thread

[EDIT}

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

这不是查询。这是控制文件的内容。请将其保存到文件load.csv然后运行cmd(如果在Linux上为yuo're,则运行shell)并输入:

sqlldr user/pass control=load.ctl

您可以找到here的一些示例。