1

ここには、1.employee(eid,ename)、2.address(aid,address)、3.employee_add(eid,aid) の 3 つのテーブルがあります。

従業員と住所には多対多の関係があります。私がする必要があるのは、employee_add テーブルからデータを失うことなく、住所テーブルから重複を消去することです。前もって感謝します!助けてください

   DECLARE
         a ADDRESS.AID%TYPE;
         b ADDRESS.ADDRESS%TYPE;
         c ADDRESS.AID%TYPE;
         d ADDRESS.ADDRESS%TYPE;
         CURSOR Cur1 IS
          SELECT AID,ADDRESS
          FROM ADDRESS;
          CURSOR Cur2 IS
            SELECT AID,ADDRESS
             FROM ADDRESS;
      BEGIN
        OPEN Cur1;
         LOOP
            FETCH Cur1 INTO a, b;
            EXIT WHEN Cur1%NOTFOUND;
            OPEN Cur2;
            LOOP
            FETCH Cur2 into c,d;
            IF (b=d) THEN
                IF(a!=c) THEN
                    update  employee_add set aid=a where aid=c;
                    delete from address where aid=c;
                END IF;
                END IF;
                END LOOP;
                CLOSE Cur2;
                END LOOP;
                CLOSE Cur1;

                 END;
4

2 に答える 2