1

このクエリに問題があります:

  MERGE INTO qot
  USING dual
  ON (qot_id = 1023125885)
  WHEN MATCHED AND qot_exc_id = 4 THEN UPDATE SET qot_exc_id = 259
  WHEN MATCHED AND qot_exc_id = 6 THEN UPDATE SET qot_exc_id = 131;

エラーが発生しました:「キーワードがありません」。誰かが私に何か手がかりを教えてもらえますか?

ありがとうございました!

ご挨拶、

r。

4

1 に答える 1

4

更新したいだけで、挿入したくないのに、なぜMERGEを使おうとしているのかわかりません。実行しているように、WHEN句に条件を追加することはできません。ドキュメントを参照してください。

なぜこれをしないのですか?

update qot
set qot_exc_id = case qot_exc_id
                    when 4 then 259
                    when 6 then 131
                    end
where qot_id = 1023125885
and qot_exc_id in (4,6);

本当にMERGEが必要な場合は、次のようなものが必要です。

MERGE INTO qot
USING dual
ON (qot_id = 1023125885)
WHEN MATCHED THEN 
  UPDATE SET qot_exc_id = case qot_exc_id
                            when 4 then 259
                            when 6 then 131
                            else qot_exc_id
                            end;

多分:

MERGE INTO qot
USING dual
ON (qot_id = 1023125885 and qot_exc_id in (4,6))
WHEN MATCHED THEN 
  UPDATE SET qot_exc_id = case qot_exc_id
                            when 4 then 259
                            when 6 then 131
                            end;
于 2012-07-04T09:06:16.557 に答える