MonetDB - COPY INTO带有特殊字符的批量插件

时间:2016-01-12 06:51:29

标签: java database bulkinsert monetdb monetdblite

我使用COPY INTO将一些数据批量插入MonetDB。我复制的csv在某些字符串字段中有一些特殊字符,如\,它打破了插入。我得到的错误是:

  

无法导入表格第1行字段11' clob'预期在这里的数据'

当我用\替换/时,它工作正常,我认为问题与Java有关,因为\用作转义字符,但我不确定!

这是我用于批量加载的命令:

COPY INTO line : copy into dbtest.dbo.table3 from '/home/etltest/out.csv' using delimiters ';','\n','"';

这是一个示例行:

"452475";"0047748";"002";"2014-01-01 00:16:00.000";"2";"2014-01-01 00:16:16.090";"1";"1";"0";"testfile.xml";"~/uploads/Su/F0047748\2014\1";"3d67502‌​e-94ed-4e3d";"2014-01-01 00:15:25.283" 

我找到了一个工作,在SQL中使用REPLACE函数将\替换为/,但处理数百万行时处理功能太重

为什么会发生这种情况,而不是替换\

1 个答案:

答案 0 :(得分:0)

你是对的,'\'是逃脱角色。要修复导入错误,您需要将其加倍。用'\'替换csv文件中的所有'\'。

使用REPLACE SQL函数执行此操作将非常昂贵。如果可能,请直接将CSV文件中的“\”加倍,或更改生成CSV文件的工具来处理此问题。