Plsql 我想删除从游标获取的数据,而不使用更新

Plsql 我想删除从游标获取的数据,而不使用更新,plsql,cursor,Plsql,Cursor,我从select语句中筛选了一组数据,我需要从表'SHOP\u MATERIAL\u ASSIGN\u TAB'中删除这些数据。我已经用光标删除了。但这在执行时造成了问题。不使用“for update”方法就可以完成的想法 DECLARE CURSOR DELDATA_ IS SELECT B.* FROM IC_WQ_OLD_LOCATION_TAB A, SHOP_MATERIAL_ASSIGN_TAB B WHERE A.LOCATION_NO = B.L

我从select语句中筛选了一组数据,我需要从表
'SHOP\u MATERIAL\u ASSIGN\u TAB'
中删除这些数据。我已经用光标删除了。但这在执行时造成了问题。不使用
“for update”
方法就可以完成的想法

DECLARE
  CURSOR DELDATA_ IS
    SELECT B.*
      FROM IC_WQ_OLD_LOCATION_TAB A, SHOP_MATERIAL_ASSIGN_TAB B
     WHERE A.LOCATION_NO = B.LOCATION_NO
       AND A.SITE = B.CONTRACT
       AND B.LOCATION_NO = 'HYLIN001'
       FOR UPDATE;

  TEMP_ DELDATA_%ROWTYPE;

BEGIN
  OPEN DELDATA_;
  LOOP
    FETCH DELDATA_
      INTO TEMP_;
    EXIT WHEN DELDATA_%NOTFOUND;
    DELETE FROM SHOP_MATERIAL_ASSIGN_TAB WHERE CURRENT OF DELDATA_;
  END LOOP;
  COMMIT;
END;

根本不要使用PL/SQL

DELETE FROM shop_material_assign_tab
      WHERE     EXISTS
                   (SELECT NULL
                      FROM ic_wq_old_location_tab a
                     WHERE     a.location_no = b.location_no
                           AND a.site = b.contract)
            AND b.location_no = 'HYLIN001'