- 締切済み
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です、 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mst4da
- ベストアンサー率100% (1/1)
回答No.3
提示されているSQLとテーブルでは、暗黙の型変換が問題なく成功するはずです。 実際のテーブル定義と実際にエラーになるSQLを提示することは可能でしょうか? カラム名や個人情報は伏字でも構いませんが。
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.2
> しかも、既に稼動していて、同じデータで今まで問題なく動いているとの事です、 その環境のバージョンもOra9.2ですか?
- kokorone
- ベストアンサー率38% (417/1093)
回答No.1
最後のフィールドはNUMBER型ですので、シングルクォーテーションで囲むのがよろしくないのでは? お試しください。
質問者
お礼
有難う御座います、 実はINSERTの実行は別のアプリ経由で行っており、 こちらの一存で形式を変える事ができません、 しかも、既に稼動していて、同じデータで今まで問題なく動いているとの事です、 クォーテーション表記自体に問題は無いのではないかと思うのですが、 ORACLEの暗黙の型変換により、'0'や'1'であれば問題なく0と1に変換できるはずで、 エラー自体の意味が、この型変換ができなかった事を指すそうなので、 (例えば'A1'は数字に置き換えられない為エラーというような) 違うのでしょうか?
補足
有難う御座います、 確認したところ、問題なく動いている環境では 10.2だそうです、 型変換について、このバージョンの違いが影響するのでしょうか? 自分なりに調べたところ、特に違いがあるようには思えなかったのですが、