4. 2 v_enqueue_options DBMS_AQ.enqueue_options_t;
65. 3 v_message_properties DBMS_AQ.message_properties_t;
66. 4 v_message_handle RAW(16);
67. 5 v_queue_msg t_event_queue;
68. 6 BEGIN
69. 7 v_queue_msg := t_event_queue('give_me_a_job');
70. 8 DBMS_AQ.enqueue(queue_name => 'event_queue',
71. 9 enqueue_options => v_enqueue_options,
72. 10 message_properties => v_message_properties,
73. 11 payload => v_queue_msg,
74. 12 msgid => v_message_handle);
75. 13 COMMIT;
76. 14* END;
77. PL/SQL procedure successfully completed.
78.
79. SQL> select * from event_schedule;
80.
81. ID CREATED_DATE
82. ---------- -------------------
83. 1 2011-08-09-11:52:47
三:创建作业链,作业链由作业来启动
1. SQL> BEGIN
2. 2 DBMS_RULE_ADM.grant_system_privilege(
3. 3 privilege => DBMS_RULE_ADM.create_rule_set_obj,
4. 4 grantee => 'HR',
5. 5 grant_option => FALSE);
6. 6 DBMS_RULE_ADM.grant_system_privilege(
7. 7 privilege => DBMS_RULE_ADM.create_eva luation_context_obj,
8. 8 grantee => 'HR',
9. 9 grant_option => FALSE);
10. 10 DBMS_RULE_ADM.grant_system_privilege(
11. 11 privilege => DBMS_RULE_ADM.create_rule_obj,
12. 12 grantee => 'HR',
13. 13 grant_option => FALSE);
14. 14* END;
15. PL/SQL procedure successfully completed.
16.
17. SQL> conn hr/hr
18. Connected.
19. SQL> CREATE TABLE chain1 (
20. 2 id NUMBER(10) NOT NULL,
21. 3 description VARCHAR2(20) NOT NULL,
22. 4 created_date DATE NOT NULL,
23. 5 CONSTRAINT scheduler_test_pk PRIMARY KEY (id)
24. 6* )
25. Table created.
26.
27. SQL> create sequence seq_chain;
28. Sequence created
29.
30. SQL> BEGIN
31. 2 DBMS_SCHEDULER.create_program (
32. 3 program_name => 'hr.program1',
33. 4 program_type => 'PLSQL_BLOCK',
34. 5 program_action => 'BEGIN
35. 6 INSERT INTO hr.chain1 (id, description, created_date)
36. 7 VALUES (seq_chain.NEXTVAL, ''program1'', SYSDATE);
37. 8 COMMIT;
38. 9 END;',
39. 10 enabled => TRUE,
40. 11 comments => null);
41. 12* END;
42. PL/SQL procedure successfully completed.
43.
44.
45. SQL> BEGIN
46. 2 DBMS_SCHEDULER.create_program (
47. 3 program_name => 'hr.program2',
48. 4 program_type => 'PLSQL_BLOCK',
49. 5 program_action => 'BEGIN
50. 6 INSERT INTO hr.chain1 (id, description, created_date)
51. 7 VALUES (seq_chain.NEXTVAL, ''program2'', SYSDATE);
52. 8 COMMIT;
53. 9 END;',
54. 10 enabled => TRUE,
55. 11 comments => null);
56. 12* END;
57. PL/SQL procedure successfully completed.
58.
59.
60. SQL> BEGIN
6