2014-11-04 40 views
0
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' } 

我开始思考这是不可能的,我必须列比较列

+0

看起来你需要一些[动态sql](http://stackoverflow.com/q/7123659/27439) – 2014-11-04 14:47:12

回答

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; 

没有测试动物 - 你会成为第一!

分享和享受。

相关问题