在 SQL 查询中转义换行符

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

我使用下面的删除换行符。然而,也在寻找保护它们的方法——


replace (replace (hobbies, chr (13), ''), chr (10), ' ')


一只名叫tom的猫
浏览 274回答 3
3回答

繁华开满天机

使用REPLACE或TRANSLATE函数:SELECT NAME, AGE, JOB, REPLACE(HOBBIES, CHR(10), '')  FROM PERSON_DETAILS或者SELECT NAME, AGE, JOB, TRANSLATE(HOBBIES, 'x' || CHR(10) || CHR(12) || CHR(13), 'x')  FROM PERSON_DETAILS                         --     LF         FF         CRTRANSLATE如果您要进行多个翻译,则非常有用。在这里,我增加了响应以消除 HOBBIES 中的回车、换页和换行。

阿波罗的战车

\n查询时删除。使用以下查询。select name , age , job , REPLACE(hobbies,CHR(10),'') "hobbies" from person_details
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java