2012-02-28 83 views
1

如何在Oracle中将特殊字符(如'#')转换为RAW格式?我需要它在blob中进行搜索。将特殊字符转换为Oracle中的RAW格式

下面的代码是给我的所有行表,结果

dbms_lob.instr(gob_a_document, utl_raw.cast_to_raw('C#')) <> 0) 

还是有更好的办法?

+2

“#”在大多数数据集中并不是特殊字符 - 这原本是不同的字符吗? – 2012-02-28 13:15:11

+0

不,我很抱歉,我认为它是一个特殊字符,因为包含它的声明给了我一个奇怪的结果(正如我上面所描述的)。 – 2012-02-28 13:41:33

+0

可能是一个愚蠢的问题,但是您是否确定表中至少有一些行指向*不包含'C#'的文件? – 2012-03-02 07:01:55

回答

0

我试了你的代码,我认为这是正确的,该行。在Oracle 11.2.0.1上,我使用你的代码做了一些基本相同的事情:

select v.* 
from V_INCOMING_MAIL v 
where dbms_lob.instr(v.message_text, utl_raw.cast_to_raw('C#'),1,1) <> 0; 

这样从视图中的15000中选出了9行。从这些行和其他行的特定采样中,似乎工作正常。

所以,也许问题出在SQL语句中的其他行?