从命令行加载数据从CSV文件加载到Oracle表



我尝试使用sql加载器尝试。事实是必须为数据加载。在表中。我正在使用Oracle 11g。

sql*加载程序文档说:

当您加载表时,可以将INTO TABLE子句用于 指定特定表的加载方法(INSERTAPPENDREPLACETRUNCATE)仅适用于该表。该方法 覆盖全局表加载方法。全局桌载 默认情况下,方法为 INSERT,除非有其他方法 在任何INTO TABLE条款之前指定。

因此,默认情况下,您的表负载将处于INSERT模式,这确实需要表为空。

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

附加
如果数据已经存在于表中,则SQL*加载程序将新行附加到其上。如果数据尚不存在,则 新行被简单加载。您必须具有使用APPEND选项的SELECT特权。

因此,您的控制文件需要说类似的话(如示例所示):

LOAD DATA
INFILE 'my_file.dat'
BADFILE 'my_file.bad'
DISCARDFILE 'my_file.dsc'
APPEND
INTO TABLE my_table
...

您还可以考虑将新的CSV数据用作外部表并将其插入实际表格,这可能会更加灵活。

最新更新