欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle 存储过程 更新多表 急

更新时间: 2014-01-05 02:14:24 责任编辑: Author_N1

 

oracle 存储过程 更新多表 急!急!急!在线等
表名           临时表名                        正式表名
表1         tb1_temp                     tb1  
表2         tb2_temp                     tb2
表3         tb3_temp                     tb3
表4         tb4_temp                     tb4
临时表和正式表结构字段等完全相同
这里通过接口把数据存入到了临时表中,现在需要把临时表中所有的数据插入到正式表中,我想写个存储过程执行以后四个表一起更新插入,没思路,希望大家能给点建议和思路,本人菜鸟希望能详细点,存过不是很熟悉。
--参考方法--
如果不需要考虑数据是否存在,直接插入不就好了吗?如果需要,加上where ..not exists 做下判断
create or replace procedure pro_ins as
begin
  insert into tb1 select * from tb1_temp;    
  insert into tb2 select * from tb2_temp;   
  insert into tb3 select * from tb3_temp;   
  insert into tb4 select * from tb4_temp;                    
end;

楼主主要纠结的是哪个环节呢?


--参考方法--
引用:
不知道 大家还有其他的什么方法吗 快速 准确?


merge into 存在就更新,不存在就插入
--参考方法--
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

存在就插入,不存在就更新,为什么不适合用merge?

DECLARE   
  JOB        BINARY_INTEGER; --任务ID  
  v_begin    DATE;           --开始时间
  v_interval VARCHAR2(50);   --时间间隔
BEGIN   
  v_begin:=sysdate;
  v_interval:= 'trunc(sysdate,''mi'') + 1/ (24*60)';  --每分钟执行一次, 可以更改
  DBMS_JOB.SUBMIT(JOB,
          'test_pkg;', --存储过程名称
          v_begin,
          v_interval, 
          FALSE,
          0,
          FALSE);
  COMMIT;
END;

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:24
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7392/
本文WWW.DOC100.NET DOC100.NET版权所有。