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