我使用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";"3d67502e-94ed-4e3d";"2014-01-01 00:15:25.283"
我找到了一个工作,在SQL中使用REPLACE
函数将\
替换为/
,但处理数百万行时处理功能太重
为什么会发生这种情况,而不是替换\
?
答案 0 :(得分:0)
你是对的,'\'是逃脱角色。要修复导入错误,您需要将其加倍。用'\'替换csv文件中的所有'\'。
使用REPLACE SQL函数执行此操作将非常昂贵。如果可能,请直接将CSV文件中的“\”加倍,或更改生成CSV文件的工具来处理此问题。