我试图理解为什么在某些系统上,当我尝试从 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)
这个原始查询在大多数系统上运行良好,但在某些系统上会给出“无效号码”错误。问题是为什么?为什么它适用于大多数系统而不适用于某些系统?