java - SQL 查询中转义换行符

标签 java sql oracle java-8

我正在使用我的 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/

相关文章:

java - 如何在模式编译时转义方括号?

oracle - 使用 Oracle 数据源进行 Wildfly 部署

sql - rails 范围检查关联是否不存在

sql - 如何将逗号分隔的字符串转换为逗号分隔的整数并将其作为 Oracle 中的参数传递?

java - com.zaxxer.hikari.pool.HikariPool$PoolInitializationException : Failed to initialize pool: ORA-00923: FROM keyword not found where expected

java - 空指针异常 jnlp.FileSaveService

java - 为什么强制转换为泛型才生效?

java - DaoObject 上的 GreenDao NoClassDefFoundError

sql - Hive如何根据列值提取数据并写入本地文件

sql - 如何将单个字段转换为SQLite日期以计算工作日?