株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

ORA-01722: 数値が無効です

01.ORA-01722エラーとはどのようなエラーか?

ORA-01722エラーは、Oracleの文字型 → 数値型への内部的な型変換に失敗したときに発生します。

02.ORA-01722エラーのエラー出力例

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: 数値が無効です。

03.ORA-01722の一般的な発生要因と対処

型変換は、変換対象の文字列に、数値、小数点、符号以外の文字が含まれる場合に失敗します。上記の出力例では、char型で定義されているa列の文字列’A’を、数値に変換しようとしたためにORA-01722エラーが発生しています。
to_number()関数を使用する場合、数値型へ変換可能な値のみが格納されている列を対象としてください。WHERE句を使ってデータを絞り込んでも、内部的に実行される処理の順序によってはORA-01722が発生するため、注意が必要です。

04.キーワード

ORA-1722 ORA-01722 数値が無効です to_number()関数