我使用COPY INTO将一些数据批量插入到MonetDB中。我正在复制的csv在一些字符串字段中有一些特殊字符,比如\,它破坏了插入。我得到的错误是:
未能导入表1字段11 'clob‘在’这里的数据‘中的期望
当我用\替换/时,它工作得很好,我认为这个问题与/有关,因为\正在使用转义字符,但我不确定!
这是我用于批量加载的命令:
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函数将\替换为/,但在处理数百万行时,这一处理函数太重了。
为什么会发生这种情况,是否有任何替代\的方法?
发布于 2016-02-02 16:17:39
你说得对,“\”是一个转义角色。要修复导入错误,需要加倍。将csv文件中的所有“\”替换为“\”。
使用替换SQL函数执行此操作将付出很大的代价。如果可能的话,直接将CSV文件中的“\”加倍,或者更改生成CSV文件的工具来处理这个问题。
https://stackoverflow.com/questions/34737232
复制相似问题