3 つの異なるテーブルからデータを返すストアド プロシージャがあります。コードでそのプロシージャを呼び出すたびに、新しいデータを別のテーブルに挿入する必要があります (データを複製することはベスト プラクティスではありませんが、この場合は必要です)。
これは私がこれまでに持っているものです:
BEGIN
DECLARE
v_cc COMM_CUSTOMER%ROWTYPE;
CURSOR c1 is
SELECT d.customer_name, d.active, f.street, f.state, f.zip, t.amount_due, t.due_date
FROM tables t
INNER JOIN othertable on ect, ect
WHERE t.due_date < sysdate
c_row c1%rowtype;
BEGIN
OPEN c1;
LOOP
FETCH c1
INTO c_row;
EXIT WHEN c1%NOTFOUND;
MERGE INTO COMM_CUSTOMER cc
USING DUAL
on (cc.customer_name= v_cc.customer_name and
cc.active = v_cc.active and
cc.street = v_cc.street and
cc.amount_due = v_cc.amount_due)
when not matched then
insert values c_row;
COMMIT;
END LOOP;
CLOSE c1;
これはコンパイルされますが、何もしません。
私はオラクルで約1週間働いていますが、カーソルについてはあまり知りませんし、全体的にSQLの経験もあまりありません...誰かが私が間違っていること/これを行う別の方法を教えてもらえますか? ありがとう!