2012-02-28 53 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語句中的其他行?