2014-02-06 84 views
0

我們使用oracle表作爲簡單事件存儲,在此表中我們將RAW消息id(使用SequentialGuidComb的.Net GUID)保存爲RAW(16)。通過RAW數據類型進行字符串範圍搜索

我們正在編寫一個應用程序消耗其需要使用各種例如查詢表...

select * 
from events 
where messageid > :from and messageid <= to 

問題是,當甲骨文商店的GUID爲RAW,它似乎重新排列字節數據庫,所以當Oracle嘗試進行比較時,我們得到的結果不正確。

簡單的修復方法是不使用RAW並將列更改爲nvarchar,但這樣可以有效地將存儲空間加倍。

有沒有一種方法來準確地執行此查詢,仍然存儲GUID爲RAW?

+0

能否請您爲我們提供了insert語句? – hmmftg

+0

這張桌子裏你會有多少行? –

回答

0

你可以使用HEXTORAW,例如

select * 
from events 
where messageid > hextoraw(:from) and messageid <= hextoraw(:to) 

Docs here