Oracle REGEXP_LIKE查找垂直制表符0xb字符

时间:2019-07-03 14:44:08

标签: sql regex oracle regexp-like

试图在CLOB字段中查找垂直制表符。使用不支持输入十六进制字符的regexp_like。 所以这是无效的 和REGEXP_LIKE(,'[\ xB]','i') Posix条目似乎没有帮助,因为:cntl:包括回车/换行之类的项目,在我的情况下有效。

2 个答案:

答案 0 :(得分:0)

在Oracle中有两种指定非打印字符的标准方法-chr()用于8位代码页,unistr()用于UTF-16。这是一个同时显示这两个示例的示例(垂直制表符对于8位是十进制11,对于UTF-16是\ 000B)。

with test as (select to_clob(unistr('\000B')) as str from dual)
select 'Found' from test
where regexp_like(str, chr(11),'i'); -- case insensitivity doesn't matter unless you're using letters

答案 1 :(得分:0)

您还可以考虑在其中使用asciistr()函数

regexp_like(clob_, asciistr(chr(to_number('0B','xx')))),以检测{{1}中是否存在至少一个vertical tab character(十进制:11,十六进制:0B字符:^K) }列

clob_

Demo