Sql 如何在oracle表中搜索新行字符?
我对从数据库返回的数据(字节格式)创建的文件有问题。Sql 如何在oracle表中搜索新行字符?,sql,oracle,newline,Sql,Oracle,Newline,我对从数据库返回的数据(字节格式)创建的文件有问题。 问题是文件中有一些换行符。 我想知道是否有办法编写where子句来检查某些记录是否有换行符?您可以编写如下内容: SELECT id FROM table_name WHERE field_name LIKE '%'||CHR(10)||'%' ; (|是串联运算符;CHR(10)是第十个ASCII字符,即换行符。)使用CHR函数查找ASCII值: select * from your_table where instr(your_t
问题是文件中有一些换行符。
我想知道是否有办法编写where子句来检查某些记录是否有换行符?您可以编写如下内容:
SELECT id
FROM table_name
WHERE field_name LIKE '%'||CHR(10)||'%'
;
(
|
是串联运算符;CHR(10)
是第十个ASCII字符,即换行符。)使用CHR函数查找ASCII值:
select *
from your_table
where instr(your_text_col, chr(10)) > 0;
如果你想搜索回车,那就是chr(13)。根据平台的不同,换行符通常是
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
这对我来说效果最好
从标签母版中选择*如regexp(文本,chr(10)) 谢谢。我找到了另一种方法:
select*from label\u master,其中类似regexp的(text,chr(10))
计算regex函数通常比它们的非regex等价物更昂贵。因此,当我们实际需要正则表达式匹配功能时,最好只使用regexp_like()
等。计算正则表达式函数通常比其非正则表达式等价物更昂贵。因此,当我们实际需要正则表达式匹配功能时,最好只使用regexp_like()
等。