如何在oracle表中搜索新行char?

时间:2012-11-20 21:13:00

标签: sql oracle newline

我遇到了从数据库返回的数据(以字节格式)创建的文件的问题 问题是文件中有一些换行符。
我想知道是否有办法写一个where子句来检查某条记录是否有换行符?

4 个答案:

答案 0 :(得分:22)

使用CHR功能查找ASCII值:

select *
from your_table
where instr(your_text_col, chr(10)) > 0;

如果你想搜索回车,那就是chr(13)。

答案 1 :(得分:5)

你可以这样写:

SELECT id
  FROM table_name
 WHERE field_name LIKE '%'||CHR(10)||'%'
;

||是连接运算符; CHR(10)是第十个ASCII字符,即换行符。)

答案 2 :(得分:5)

根据平台的不同,换行符通常为CHR(10)(Unix)或CHR(13)后跟CHR(10)(Windows)。对于其他更深奥的平台还有其他选择,但99.999%的时间,它将是这两个中的一个。

您可以搜索列中的数据,查找一个或两个字符

SELECT instr( column_name, CHR(10) ) position_of_first_lf,
       instr( column_name, CHR(13) || CHR(10) ) position_of_first_cr_lf
  FROM table_name
 WHERE instr( column_name, CHR(10) ) > 0

答案 3 :(得分:0)

这对我来说效果最好。

从label_master中选择*,其中regexp_like(text,chr(10));