Oracle中如何去除换行符?附SQL示例及预期输出
在Oracle中去除查询结果里的换行符
针对你遇到的问题,我们可以直接用Oracle内置的REPLACE()函数来移除字符串中的换行符(建议同时处理CHR(10)换行和CHR(13)回车,避免某些场景下的遗漏)。
具体修改方案
你可以把原SQL语句中包含换行的部分用REPLACE()嵌套处理,最终语句如下:
SELECT REPLACE(REPLACE('FILE1' || CHR(10) || 'FILE2', CHR(10), ''), CHR(13), '') FROM DUAL UNION ALL SELECT 'file ' FROM DUAL;
简单解释
- 第一层
REPLACE(..., CHR(10), '')负责移除换行符CHR(10) - 第二层嵌套的
REPLACE(..., CHR(13), '')是为了兼容可能存在的回车符CHR(13),确保所有换行相关的控制字符都被清除 - 如果你能确定结果里只有
CHR(10)这一种换行符,也可以简化为单一层REPLACE:
SELECT REPLACE('FILE1' || CHR(10) || 'FILE2', CHR(10), '') FROM DUAL UNION ALL SELECT 'file ' FROM DUAL;
执行修改后的语句后,查询结果就会变成无换行的连续内容:FILE1FILE2和file 。如果是处理表中的字段,只需要把示例里的字符串替换成对应的字段名即可。
内容的提问来源于stack exchange,提问作者Lakshmi
相关产品推荐
相关产品推荐

