Мы используем таблицу oracle в качестве простого хранилища событий, в этой таблице мы сохраняем идентификаторы сообщений (.Net GUID с помощью SequentialGuidComb) как RAW (16).Поиск по диапазону строк по типу RAW
Мы пишем потребляющего приложение, которое необходимо запросить таблицу, используя диапазон, например ...
select *
from events
where messageid > :from and messageid <= to
Проблема заключается в том, когда Oracle хранит GUIDs как RAW, кажется, упорядочивает байтов в базе данных , поэтому, когда Oracle пытается выполнить сравнение, мы получаем неверные результаты.
Простым решением является использование RAW и изменение столбца на nvarchar, но это эффективно удваивает память.
Есть ли способ выполнить этот запрос точно и сохранить GUID как RAW?
Можете ли вы предоставить нам вставить заявление? – hmmftg
Сколько строк у вас будет в этой таблице? –