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

oracle 行级触发器共享数据有关问题

更新时间: 2014-01-05 02:12:58 责任编辑: Author_N1

 

Oracle 行级触发器共享数据问题
以SCOTT方案为例,在EMP表上建立触发器
CREATE OR REPLACE TRIGGER emp_t1
BEFORE  INSERT OR UPDATE OF COMM ON EMP
FOR EACH ROW
  DECLARE
   str_empno VARCHAR2(400) := '';
   v_empno emp.empno%TYPE;
BEGIN
 v_empno := :NEW.EMPNO;
 str_empno := str_empno || ',' || TO_CHAR(v_empno);
 dbms_output.put_line(str_empno);
END;

想用变量str_empno来存储所有受影响的EMPNO,但是在行触发器中该变量不能共享。
UPDATE emp SET comm = NULL;
COMMIT;
输出:
,7369
,7499
,7521
,7566
,7654
,7698
,7782
,7788
,7839
,7844
,7876
,7900
,7902
,7934
如何让str_empno能共享最后的结果为:,7369,7499,7521,7566,7654,7698,7782,7788,7839,7844,7876,7900,7902,7934

--参考方法--
FOR EACH ROW


你已经是行级了,怎么把多行记录更新输出在一起的呢。

“dbms_output.put_line(str_empno);”不输出,增加update,把str_empno保存在中间表中。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

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