• 締切済み

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: データ型が一致しません。

みんなの回答

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

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

関連するQ&A