从命令行将数据从csv文件加载到oracle表

jas*_*sim 4 oracle data-import oracle11g sql-loader

我试着用SQL loader.The的是表必须为空的数据loading.Is有什么办法可以做到数据上传不截断table.The CSV数据需要在table.i要追加正在使用Oracle 11g.

Ale*_*ole 7

SQL*Loader的文件说:

当你装载一个表时,你可以使用该INTO TABLE子句指定特定的表装载方法(INSERT,APPEND, REPLACE,或TRUNCATE),其仅适用于表.该方法会覆盖全局表加载方法.INSERT默认情况下,全局表加载方法除非在任何INTO TABLE子句之前指定了不同的方法.

因此,默认情况下,您的表加载将处于INSERT模式,这需要表为空.

该文档还解释了如何将数据加载到非空表中 ; 在您的情况下,您希望保留现有数据:

APPEND
如果表中已存在数据,则SQL*Loader会将新行追加到其中.如果数据尚不存在,则只需加载新行.您必须SELECT有权使用该APPEND选项.

所以你的控制文件需要说这样的东西(如他们的例子中所示):

LOAD DATA
INFILE 'my_file.dat'
BADFILE 'my_file.bad'
DISCARDFILE 'my_file.dsc'
APPEND
INTO TABLE my_table
...
Run Code Online (Sandbox Code Playgroud)

您还可以考虑将新的CSV数据用作外部表并从中插入真实表,这可能会更灵活一些.