アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるテーブル「ABC」の定義が
CHAR(5),
VARCHAR2(10),
VARCHAR2(20),
NUMBER(5,2)

だったとします、
そこへINSERT文で
INSERT INTO ABC VALUES ('A1111', 'B222222', 'C33333333', '0')
を実行すると、
「ORA-01722: 数値が無効です。」
のエラーとなってしまいます、

形式的には合っているように思えるのですが、
どういった問題が考えられるでしょうか?

ORACLEバージョンは9.2です、

宜しくお願い致します。

A 回答 (3件)

提示されているSQLとテーブルでは、暗黙の型変換が問題なく成功するはずです。


実際のテーブル定義と実際にエラーになるSQLを提示することは可能でしょうか?
カラム名や個人情報は伏字でも構いませんが。
    • good
    • 0

> しかも、既に稼動していて、同じデータで今まで問題なく動いているとの事です、


その環境のバージョンもOra9.2ですか?

この回答への補足

有難う御座います、

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

補足日時:2012/03/24 23:52
    • good
    • 0

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


お試しください。
    • good
    • 0
この回答へのお礼

有難う御座います、

実はINSERTの実行は別のアプリ経由で行っており、
こちらの一存で形式を変える事ができません、
しかも、既に稼動していて、同じデータで今まで問題なく動いているとの事です、

クォーテーション表記自体に問題は無いのではないかと思うのですが、
ORACLEの暗黙の型変換により、'0'や'1'であれば問題なく0と1に変換できるはずで、
エラー自体の意味が、この型変換ができなかった事を指すそうなので、
(例えば'A1'は数字に置き換えられない為エラーというような)
違うのでしょうか?

お礼日時:2012/03/24 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す