我试图在包含特定 unicode 空白字符的 oracle 数据库中查找 clob,但我不确定如何编写 select 语句。
尝试以下查询,但不确定这是否是正确的方法:
select * from mytable where my_clob like '%'|| n'0xEF' || '%';
我不确定您要搜索什么字符,但我认为这是UNISTR
您要查找的命令。此外,LIKE
将隐式转换为VARCHAR2
(我认为),因此您只搜索前 4000 个字符。试试这个来搜索不间断的空间:
SELECT *
FROM mytable
WHERE dbms_lob.instr( my_clob, UNISTR( '\00A0' )) > 0;
https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions224.htm#SQLRF06154
如果您知道要查找的字符的字符代码,则可以使用CHR()
构建表达式来查找特定代码;
SELECT *
FROM mytable
WHERE my_clob LIKE '%' || CHR(15052183) || '%';