一部のシステムでは、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は常に数値ですが、nullにすることもできます。
クエリを修正しました:
select ID
from table
where column_1='D'
and column_2 = to_char(:some_number_value)
この元のクエリはほとんどのシステムで正常に実行されますが、一部のシステムでは「無効な番号」エラーが発生します。問題はなぜですか?一部のシステムではなく、ほとんどのシステムで機能するのはなぜですか?