日期:2014-05-17  浏览次数:20927 次

Oracle SQL或PL/SQL 实现符合一表条件更新多张表数据,不符合条件添加多张表数据
表A
(ID,VALUE)
表B
(ID,VALUE)
实现:
表A where ID='2' 则更新表A的VALUE='X',且更新表B的VALUE='Y'(表B的ID='2');
否则 插入表A ('2','X')且插入表B('2','Y')。
利用merge into 只能更新一张表且添加一张表数据,符合条件的表更新多张表数据,不符合条件的表添加多张表数据
以上Oracle SQL或PL/SQL怎么实现?


------解决方案--------------------
PL/SQL就走游标,做if判断

SQL的话,你都知道merge,它不就相当于update + insert吗,你就写一条update,一条insert all不就得了。
------解决方案--------------------
引用:
引用:

PL/SQL就走游标,做if判断

SQL的话,你都知道merge,它不就相当于update + insert吗,你就写一条update,一条insert all不就得了。


用游标的话,只能一条记录一条记录的去判断吧,那样效率很低的


你写个update难道不是游标?首先判断你需要不需要考虑效率,其次再考虑怎么提高效率。