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

mei*_*chh 14 sql oracle newline

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

APC*_*APC 25

使用CHR函数查找ASCII值:

select *
from your_table
where instr(your_text_col, chr(10)) > 0;
Run Code Online (Sandbox Code Playgroud)

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


rua*_*akh 6

你可以这样写:

SELECT id
  FROM table_name
 WHERE field_name LIKE '%'||CHR(10)||'%'
;
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢.我找到了另一种方法:`select*from label_master regexp_like(text,chr(10))` (3认同)

Jus*_*ave 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
Run Code Online (Sandbox Code Playgroud)