我正在使用我的 java 代码读取一个表并从中创建一个 csv 文件。所以我已经转换的 4 行类似于下面 -
sam , 18 , banker , He likes to play football
jam , 28 , hacker , he likes nothing
但是在某些情况下,当最后一个 varchar2 列包含\n 时,它会变成这样
sam , 18 , banker , He likes
to play
football
jam , 28 , hacker , he
likes
nothing
当我尝试读取文件时,每一行一次读取一行,并且由于很少的单词被推送到后续行,所以我无法解析数据。有没有办法转义查询中列中的新行字符,使其成为单行?
我的sql查询
select name , age , job , hobbies from person_details
我正在使用 csvwriter 生成 csv 文件 -
CSVWriter csvWriter = new CSVWriter(new FileWriter(results), DELIMITER, Character.MIN_VALUE, CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.DEFAULT_LINE_END);
我使用下面的内容来删除换行符。然而,也在寻找保护它们的方法 -
替换(替换(爱好,chr(13),''),chr(10),'')
最佳答案
取决于另一端的 CSV 解析器。由于 CSV 并未真正标准化,因此它们的行为差异很大。但请尝试将字符串括在双引号中。
SELECT '"' || name || '"',
age,
'"' || job || '"',
'"' || hobbies || '"'
FROM person_details;
但是 JB Nizet 的评论有道理。在 Java 代码中进行转换可能是最好的主意。
关于java - SQL 查询中转义换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51573421/