我有一个列(BLOB数据),其中使用了重音符号。我想搜索所有具有特定重音的行(不是所有的重音并替换它们,特别是一个)。
假设我想搜索l'application Data
我使用了以下查询,但它不起作用。
select *
from "correspondence" s
where dbms_lob.instr(s."__data", utl_raw.cast_to_raw('l'application Data')) > 0
and "externalReferenceNumber"like' 20160929%'
and "callingapplication"=' CVM'
and rownum < 5
order by s."__id" desc ;
你可以帮忙吗?似乎通过使用下面它也不起作用。
utl_raw.cast_to_raw('l || char(146) ||application Data')
答案 0 :(得分:1)
如果您想将其中一个作为文字
的一部分,则需要连续两个'
utl_raw.cast_to_raw('l''application Data')
对于像这样的备用引号,oracle也有一个古怪的语法
utl_raw.cast_to_raw(q'!l'application Data!')
q'
之后的字符可以是任何内容,只要它在结尾处匹配,并且如果您使用[,&lt;,(或{它将匹配&#34;正确&#34;结束},),&gt;或者]
点击此处http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements003.htm#i42617
SO上的语法高亮似乎被备选的第二种语法所迷惑:)