根据具有键/值对的另一个表从一个表中删除行

时间:2014-11-04 14:37:39

标签: plsql

Table1 { name = 'bob' job='trucker' gender='male' car='blue' } Table1 { name = 'dave' job='Driver' gender='male' car='red' } Table1 { name = 'jane' job='loader' gender='female' car='purple' }

table2 ( removeID="name" removeKey="jane"} table2 ( removeID="car" removeKey="red"}

我需要知道我可以使用哪种SQL会产生以下结果:

Table1 { name = 'bob' job='trucker' gender='male' car='blue' }

我开始认为这是不可能的,我必须将列与列进行比较

1 个答案:

答案 0 :(得分:0)

尝试类似

的内容
CREATE PROCEDURE DELETE_FROM_TABLE1
  strSql  VARCHAR2(32767);
BEGIN
  FOR aRow IN (SELECT * FROM TABLE2)
  LOOP
    strSql := 'DELETE FROM TABLE1 WHERE ' ||
                aRow.REMOVEID || '= ''' ||
                aRow.REMOVEKEY || '''';

    EXECUTE IMMEDIATE strSql;
  END LOOP;
END DELETE_FROM_TABLE1;

未在动物身上进行测试 - 您将成为第一个!

分享并享受。