将Accents转换为原始数据SQL

时间:2016-09-29 20:03:57

标签: sql oracle blob diacritics

我有一个列(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')

1 个答案:

答案 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上的语法高亮似乎被备选的第二种语法所迷惑:)

相关问题