更新に問題があり、下の列に挿入します。これについてアドバイスしてください。
これが入力です
depnto extra comm
----------------------------
20 300 NULL
20 300 400
20 NULL NULL
20 500 NULL
これは予想される出力です
depnto Extra comm
---------------------
20 300 300
20 300 400
20 NULL NULL
20 500 500
以下の条件comm
で列を列で更新する必要があります。extra
- comm が null の場合、追加の値が comm に更新されます。
- comm が null でない場合、更新する必要はありません。
- 両方が null の場合は、null のままにし、
- comm 列に値がある場合、上書きする必要はありません。
私のプログラムは以下です。どの行が更新され、別のテーブルのどの値に更新されるかを追跡する必要があります。
PROCEDURE (dept_id )
AS
BEGIN
FOR r IN (SELECT *
FROM emp
WHERE comm IS NULL AND extra IS NOT NULL AND deptno = dept_id)
LOOP
UPDATE emp
SET comm = extra
WHERE comm IS NULL AND extra IS NOT NULL AND deptno = dept_id;
INSERT INTO changed_comm (deptno, oldval, newval)
VALUES (dept_id, r.comm, r.extra);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
以上について意見をお願いします。正しく挿入されていません。