みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Oracle Case文でのエラー(データ型が一致しない)

Oracle初心者です。
以下のようなエラーがSQL*Plusで出てしまうのですが
何がいけないのかよくわかりません。
dt.KAISU = 5 と記述すればうまくいくのですが...
ご教授くださ~い。

SQL> UPDATE DATARECORD dt SET
 2     dt.KAISU = CASE
 3           WHEN NVL(dt.GOKEI,0)
 4             < 5
 5           THEN dt.GOKEI
 6           ELSE 5
 7           END
 8  Where NVL(dt.GOKEI,0) <> 0
 9 ;
         ELSE 5
            *
6行でエラーが発生しました。
ORA-00932: データ型が一致しません。

投稿日時 - 2006-02-11 17:53:34

QNo.1959119

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

SQLのCASE式では、どの条件にマッチした場合でも、同じ型の値を返す必要があったはずです。
おそらくdt.GOKEIの型と5の型(Number?)が一致していないと思うのですがどうでしょうか?
(DATARECORDのテーブル定義がわからないので、なんともいえませんが…。)

投稿日時 - 2006-02-12 16:12:24

あなたにオススメの質問