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

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

関連記事

ORACLE

[ORAエラー] ORA-00918: 列の定義が未確定です。

以下のように表示されます。 (日本語) ORA-00918: 列の定義が未確定です。 (英語) ORA-00918: c ...
ORACLE

[SQL*Plus] ファイルに記述されたSQLを実行する(@)

SQL*Plusで、ファイルに記述されたSQLを実行する方法です。 サンプル 以下のファイルをC:¥に置いたとし ...
ORACLE

[ORACLE] タブ文字や改行文字などの特殊文字を使用する

タブ文字や改行文字などの特殊文字をINSERT、UPDATEしたい場合は、CHR()関数を使用します。 サンプル 例)タ ...
ORACLE

[SQL*Plus] 1行の表示桁数を設定する(set linesize)

1行の表示桁数を設定するには、linesizeシステム変数を使用します。 構文 (表示構文) show linesize ...
ORACLE

[ORACLE] JSON文字列をINSERT/SELECTする

Oracle12c(12.1)から、JSON形式のデータをカラムに登録して内容を簡単に検索することができます。 JSON ...

スポンサーリンク