ORACLE機能 ORAエラー

[ORAエラー] ORA-01722: 数値が無効です。

投稿日:2017年4月9日 更新日:

以下のように表示されます。

(日本語)
ORA-01722: 数値が無効です。
(英語)
ORA-01722: invalid number

発生パターン

このエラーは以下のような場合に発生します。

  • 数値が想定される場面で数値以外が設定されていた
  • NUMBER型に文字列をセットしようとした
エラー例1
SQL> select to_number('ABC') from dual; select to_number('ABC') from dual * 行1でエラーが発生しました。: ORA-01722: 数値が無効です。

文字列 "ABC" を数値型に変換しようとしてエラーとなっています。

エラー例2
SQL> SELECT NVL(1, 'a') FROM dual; SELECT NVL(1, 'a') FROM dual * 行1でエラーが発生しました。: ORA-01722: 数値が無効です。

NVL対象の値と変換値の型が異なるためエラーとなっています。

エラー例3
SQL> select * from m_test where kbn = 1; select * from m_test where kbn = 1; * 行1でエラーが発生しました。: ORA-01722: 数値が無効です。

kbnの型が文字型で、数値以外の値がセットされている前提です。

エラー例4
SQL> select to_char('a', '9') from dual; select to_char('a', '9') from dual * 行1でエラーが発生しました。: ORA-01722: 数値が無効です。

数値フォーマットを指定したTO_CHARで、数値でない値を指定したためエラーとなっています。

対処法

  • TO_NUMBERしている値が文字列でないか確認する
  • 数値型のカラムに文字列をINSERT、UPDATEしていないか確認する
  • WHERE句で、文字型のカラムに対して数値を条件指定していないか確認する

スポンサーリンク

スポンサーリンク

-ORACLE機能, ORAエラー

執筆者:



comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサーリンク