首页 > 解决方案 > Oracle REGEXP_LIKE 查找垂直制表符 0xb 字符

问题描述

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

标签: sqlregexoracleregexp-like

解决方案


在 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

推荐阅读