2

我在 JAVA 中有一个上传功能,可以使用 CSV 文件将数据导入 postgresql 9.2 数据库。目前数据为:

ID, DESCRIPTION, PRICE, EOR
1001, "Lenovo Laptop" 20% Discount @ Jackson's Street, 500$, EOR
1002, "Samsung Laptop" 10% Discount @ Jackson's Street, 440.90$, EOR

string description = line[1];

现在,当我尝试将DESCRIPTION 字段值存储到数据库中时,它会抛出错误。无论如何,我可以将这些数据完全按照 CSV 文件的写入方式存储到数据库中吗?

4

2 回答 2

2

那是奇怪的伪 CSV。通常包含双引号的记录会将它们转义或将它们包装在整个记录周围的另一组引号中。

您可能需要覆盖copy命令中的引号字符,以便 Pg 不会将双引号解释为 CSV 引用。

于 2013-05-13T23:34:10.577 回答
1

通常它不应该在上传过程中抛出任何错误。如果真的由于特殊字符而引发任何错误,那只是由于 Craig Ringer 提到的原因。您可以通过创建如下自定义函数来避免这种情况:

removeSpecialCharacter(String inputStr) {
   inputStr = inputStr.replace('"', '');
}

但是您可能会遇到从数据库中提取这些特殊字符并使用它的问题。如果要在浏览器中显示这些特殊字符,则需要对特殊字符使用转义方法。转义特殊字符的详细过程在这里

于 2013-05-15T09:29:17.807 回答