Я пытаюсь понять, почему в некоторых системах я получаю сообщение об ошибке неверного числа, когда пытаюсь выбрать значение из столбца varchar2, в то время как в других системах я не получаю сообщение об ошибке при выполнении точного то же самое.
Таблица выглядит примерно так:
ID Column_1 Column_2
1 V text
2 D 1
3 D 2
4 D 3
и запрос:
select ID
from table
where column_1='D'
and column_2 = :some_number_value
: some_number_value всегда числовое, но может быть нулевым.
Мы исправили запрос:
select ID
from table
where column_1='D'
and column_2 = to_char(:some_number_value)
Этот оригинальный запрос работает нормально на большинстве систем, но в некоторых системах выдает ошибку «неверный номер». Вопрос почему? Почему это работает на большинстве систем, а не на некоторых?