DBAtlas · データベース運用アトラス

ORA-01722: Invalid number(数値が無効)

Oracle

意味

数値コンテキストが必要な箇所で、数値に変換できない文字列が使われた。暗黙的または明示的な変換が失敗した。

原因

数値列と文字列の比較 (例: WHERE num_col = 'ABC')、数値フィールドへの英字を含む値の挿入、TO_NUMBER に不適切な書式、または小数点/桁区切り文字の不一致 (カンマとピリオド)。

対処方法

変換に失敗した式を特定する。通常は WHERE 条件か INSERT の値。文字列/数値の比較では型の互換性を確保し、必要に応じて明示的な変換を使う: TO_NUMBER(my_column)、文字列側には TO_CHAR。アプリケーション層で数値列への非数値入力を防ぐ。NLS_NUMERIC_CHARACTERS の設定に注意する。

DBAtlas で開く →

同じデータベースの他の項目