- TOP
- 技術情報
- Oracle DB Tips
- ORA-01722: 数値が無効です
KNOWLEDGE
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
Oracle DB Tips
ORA-01722エラーは、Oracleの文字型 → 数値型への内部的な型変換に失敗したときに発生します。
SQL> create table test_tab(a char(10)); SQL> insert into test_tab values('A'); SQL> select to_number(a) from test_tab; select to_number(a) from test_tab * 行1でエラーが発生しました。: ORA-01722: 数値が無効です。
型変換は、変換対象の文字列に、数値、小数点、符号以外の文字が含まれる場合に失敗します。上記の出力例では、char型で定義されているa列の文字列’A’を、数値に変換しようとしたためにORA-01722エラーが発生しています。
to_number()関数を使用する場合、数値型へ変換可能な値のみが格納されている列を対象としてください。WHERE句を使ってデータを絞り込んでも、内部的に実行される処理の順序によってはORA-01722が発生するため、注意が必要です。
ORA-1722 ORA-01722 数値が無効です to_number()関数