• 締切済み

ora-01722のエラーについて

あるテーブル「ABC」の定義が CHAR(5), VARCHAR2(10), VARCHAR2(20), NUMBER(5,2) だったとします、 そこへINSERT文で INSERT INTO ABC VALUES ('A1111', 'B222222', 'C33333333', '0') を実行すると、 「ORA-01722: 数値が無効です。」 のエラーとなってしまいます、 形式的には合っているように思えるのですが、 どういった問題が考えられるでしょうか? ORACLEバージョンは9.2です、 宜しくお願い致します。

みんなの回答

  • mst4da
  • ベストアンサー率100% (1/1)
回答No.3

提示されているSQLとテーブルでは、暗黙の型変換が問題なく成功するはずです。 実際のテーブル定義と実際にエラーになるSQLを提示することは可能でしょうか? カラム名や個人情報は伏字でも構いませんが。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> しかも、既に稼動していて、同じデータで今まで問題なく動いているとの事です、 その環境のバージョンもOra9.2ですか?

etc-etc
質問者

補足

有難う御座います、 確認したところ、問題なく動いている環境では 10.2だそうです、 型変換について、このバージョンの違いが影響するのでしょうか? 自分なりに調べたところ、特に違いがあるようには思えなかったのですが、

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

最後のフィールドはNUMBER型ですので、シングルクォーテーションで囲むのがよろしくないのでは? お試しください。

etc-etc
質問者

お礼

有難う御座います、 実はINSERTの実行は別のアプリ経由で行っており、 こちらの一存で形式を変える事ができません、 しかも、既に稼動していて、同じデータで今まで問題なく動いているとの事です、 クォーテーション表記自体に問題は無いのではないかと思うのですが、 ORACLEの暗黙の型変換により、'0'や'1'であれば問題なく0と1に変換できるはずで、 エラー自体の意味が、この型変換ができなかった事を指すそうなので、 (例えば'A1'は数字に置き換えられない為エラーというような) 違うのでしょうか?

関連するQ&A