Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第17章.pptVIP

Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第17章.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下面通过一个例子说明DBMS_ALERT包的使用方法。这个例子针对用户的更新操作发出预警事件,以提醒用户其操作将会引起数据库系统的更改。 首先,建立一个触发器update_books,该触发器用来给预警事件发出信号: SYS@orcl_dbs CREATE OR REPLACE TRIGGER update_books 2 AFTER UPDATE OF bookprice ON books_pub.books 3 BEGIN 4 DBMS_ALERT.SIGNAL (price_upd_alt, 请注意:您修改了图书的价格!); 5 END; 6 / 触发器已创建。 然后,创建一个存储过程用来注册并等待预警事件: SYS@orcl_dbs CREATE OR REPLACE PROCEDURE wait_alert_event 2 (alt_name VARCHAR2) 3 IS 4 meg VARCHAR2(300); 5 stat INT; 6 BEGIN 7 DBMS_ALERT.REGISTER (alt_name); 8 DBMS_ALERT.WAITONE (alt_name, meg, stat); 9 IF stat = 0 THEN 10 DBMS_OUTPUT.PUT_LINE (警告消息: || meg); 11 END IF; 12 DBMS_ALERT.REMOVE (alt_name); 13 END; 14 / 过程已创建。 最后,使用预警事件: BOOKS_PUB@orcl_dbs SET SERVEROUTPUT ON BOOKS_PUB@orcl_dbs BEGIN 2 FOR I IN 1..5 LOOP 3 wait_alert_event (price_upd_alt); 4 END LOOP; 5 END; 6 / 17.4.3 DBMS_JOB DBMS_JOB包用于安排和管理作业队列中的作业。使用作业可以使Oracle数据库定期执行特定的任务。 当使用DBMS_JOB管理作业时,必须在初始化参数文件中设置初始化参数JOB_QUEUE_PROCESSES,使其值大于0。 SUBMIT 使用SUBMIT过程可以将作业提交到作业队列中,该过程的语法如下: DBMS_JOB.SUBMIT (job OUT BINARY_INTEGER, what IN VARCHAR2, next_date IN DATE DEFAULT SYSDATE, interval IN VARCHAR2 DEFAULT NULL, no_parse IN BOOLEAN DEFAULT FALSE, instance IN BINARY_INTEGER DEFAULT ANY_INSTANCE, force IN BOOLEAN DEFAULT FALSE); 其中: job:指定作业编号,该编号在作业创建时赋予一个作业,只要该作业存在,其编号就不会改变; what:指定作业要执行的操作,可以是PL/SQL代码,或者调用存储过程,调用存储过程时一定要以分号“;”结束; next_date:指定作业下次运行的日期,默认为系统时间SYSDATE; interval:指定下次运行作业的日期函数,它必须计算为将来的一个时间点,或者设置为NULL; no_parse:指定是否解析与作业相关的过程,默认不解析,即FALSE; instance:指定哪个实例可以运行作业,默认任何一个实例都可以; force:指定是否强制运行与作业相关的过程,默认不强制。 例如,通过作业运行的方式指定一个存储过程ins_test每60s运行一次。 BOOKS_PUB@orcl_dbs CREATE SEQUENCE test_seq 2 START WITH 1 3 INCREMENT BY 1; 序列已创建。 BOOKS_PUB@orcl_dbs CREATE OR REPLACE PROCEDURE ins_test 2 AS 3 BEGIN 4 INSERT INTO test 5 VALUES (test_seq.NEXTVAL, TO_CHAR(SYSDATE, 6 DD-MON-YYYY HH24:MI:SS)); 7 COMMIT; 8 END ins_test; 9 / 过程已创建。 以上是创建存储过程

您可能关注的文档

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档