现在有两张完全一致的表,a 和 b,他们的唯一索引是 sqlnum
且a表的sqlnum不会跟b表的sqlnum相同
现在我想根据sqlnum来更新表中的step字段,但是不知道该sqlnum在哪张表中,
能否一个sql语句解决。。
且a表的sqlnum不会跟b表的sqlnum相同
现在我想根据sqlnum来更新表中的step字段,但是不知道该sqlnum在哪张表中,
能否一个sql语句解决。。
解决方案 »
- oracle 11g R2 能不能与 SQL SERVER 2012共存啊
- 行排序的问题
- 数据库覆盖的问题
- 散分了
- Sqlldr 导入遇到汉字问题,急!
- oracle 怎么定义自己的数据类型
- 数据库连接讨论--永远的话题
- 一个sql语句,怎么知道一个table的字段是什么。有什么字段、
- 急问,在线等! oracle数据库中 表的主关键字 存储在系统的什么地方?
- 创建Oracle procedure 输入参数后 修改多种表数据,为什么创建procedure会报错,一楼贴出代码,请帮忙看下
- 请教,动态处理的问题。谢谢
- Help! Oracle是否有方法从一个table向另一个table插入数据,但忽略重复数据,而只增加新数据?
(select sqlnum,'a' tabname from a
union all
select sqlnum,'b' from b)
where sqlnum=?
那么不能用union 视图直接更新
可以建个替代触发器,然后更新视图;或者写个过程,将要更新的sqlnum和step作为传参
instead of update on ab
for each row
begin
update a set step=:new.step where sqlnum=:new.sqlnum;
if sql%rowcount=0 then
update b set step=:new.step where sqlnum=:new.sqlnum;
end if;
end;然后更新视图ab即可(ab可以是union all视图,也可以是全连接视图)