sql - Oracle REGEXP_LIKE 查找垂直制表符 0xb 字符
问题描述
试图在 CLOB 字段中查找垂直制表符。使用不支持十六进制字符输入的 regexp_like。所以这是无效的,并且 REGEXP_LIKE(,'[\xB]','i') Posix 条目似乎没有帮助,因为 :cntl: 包括在我的场景中有效的回车/换行等项目。
解决方案
在 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
推荐阅读
- android - 如何获得半透明状态栏?
- java - 如何使用 Spring Data Mongo DB 仅检索文档的特定字段?
- java - 循环构造函数对象循环java
- node.js - 使用密码压缩两次并使用 Node.js、Lambda 和 SES 作为电子邮件附件发送
- c# - System.Runtime.InteropServices.COMException 类型不匹配。尝试使用数据创建 xls 文件时出错
- javascript - TypeError:从调用中收集用户输入时,无法读取 twilio 中未定义的属性“数字”
- javascript - 为文件夹中的每个文件制作一个下载按钮
- java - JAXB:从不同继承级别获取标签
- oracle - ORA-00936: 缺少使用 SELECT INTO local_variable 的表达式
- mysql - 触发更新同一张表