Наблюдал похожий глюк именно на Oracle (на MS SQL не удалось тогда воспроизвести).
Запрос был простенький типа
select currency
where currency.CurrencyCode == "XXXY"
Когда в качестве кода валюты передавался код несуществующей валюты длиной в 4 символа (тестировалась проверка на некорректное значение валюты при импорте из другой системы), то возвращалась запись, код которой совпадал с первыми тремя символами неправильного кода. Ожидалось же, что запись не вернется и система выругается. Дальше из-за этого получался какой-то конфуз. Т.е. в режиме FORCEPLACEHOLDERS Oracle как-то умудрялся резать значение переменной, и в запрос уходило уже не то значение, которое запрашивалось, а подрезанное.
select forceliterals currency
where currency.CurrencyCode == "XXXY"
Дал ожидаемый результат (ничего не вернул).
Возможно, и в вашем случае можно поближе докопаться до причины.
__________________
С уважением,
glibs®
|