Bo's Oracle Station

查看: 2219|回复: 0

课程第57/58/59次(2017-03-03星期五,2017-03-05星期日上下午)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2017-3-6 14:52:18 | 显示全部楼层 |阅读模式
上完1Z0-053第17章(5个单位时间上完Oracle Scheduler, 做了包括Remote Scheduler的14个实验)
开始性能调优
1Z0-052共19章(上完17章),1Z0-053共21章(上完16章),1Z0-063多租户部分共9章(上完0章)
总共上完全部49章中的33章


12c Client 已经可以下载了:ftp://oracle@124.16.180.172
暂时需要密码,密码课堂上提供


2017-03-03.sql:
  1. DROP TABLE hr.scheduler_test;
  2. DROP SEQUENCE hr.scheduler_test_seq;
  3. CREATE TABLE hr.scheduler_test (
  4. id NUMBER(10) NOT NULL,
  5. created_date DATE NOT NULL,
  6. message varchar2(60) ,
  7. CONSTRAINT scheduler_test_pk PRIMARY KEY (id)
  8. );

  9. select * from hr.scheduler_test;
  10. CREATE SEQUENCE hr.scheduler_test_seq;


  11. create or replace procedure hr.procnew( p_1 hr.t_event_queue_payload )
  12. is
  13. BEGIN
  14. INSERT INTO hr.scheduler_test
  15. VALUES (hr.scheduler_test_seq.NEXTVAL, SYSDATE, p_1.event_name );
  16. COMMIT;
  17. END;



  18. begin
  19. dbms_scheduler.create_program (
  20. program_name => 'hr.programnew',
  21. program_action=> 'hr.procnew',
  22. program_type => 'STORED_PROCEDURE',
  23. number_of_arguments => 1,
  24. enabled => false) ;
  25. end;

  26. select spa.ARGUMENT_NAME,
  27. spa.ARGUMENT_POSITION,
  28. spa.ARGUMENT_TYPE,
  29. spa.METADATA_ATTRIBUTE,
  30. spa.PROGRAM_NAME
  31. from dba_scheduler_program_args spa
  32. where spa.OWNER='HR';

  33. begin
  34. dbms_scheduler.define_metadata_argument (
  35. program_name => 'hr.programnew',
  36. argument_position => 1 ,
  37. metadata_attribute => 'EVENT_MESSAGE') ;

  38. end;

  39. begin
  40. dbms_scheduler.enable ('hr.programnew');
  41. end;

  42. select * from hr.scheduler_test;

  43. ---

  44. DECLARE
  45. l_enqueue_options DBMS_AQ.enqueue_options_t;
  46. l_message_properties DBMS_AQ.message_properties_t;
  47. l_message_handle RAW(16);
  48. l_queue_msg hr.t_event_queue_payload;
  49. BEGIN
  50. l_queue_msg := hr.t_event_queue_payload('give_me_a_prod');

  51. DBMS_AQ.enqueue(queue_name => 'hr.event_queue',
  52. enqueue_options => l_enqueue_options,
  53. message_properties => l_message_properties,
  54. payload => l_queue_msg,
  55. msgid => l_message_handle);
  56. COMMIT;
  57. END;

  58. ----



  59. BEGIN
  60. sys.dbms_scheduler.create_job(
  61. job_name => '"HR"."JOB10"',
  62. program_name => '"HR"."PROGRAM10"',
  63. event_condition => 'tab.user_data.file_size > 10',
  64. queue_spec => '"HR"."FILEWATCHER1"',
  65. start_date => systimestamp at time zone 'Asia/Shanghai',
  66. job_class => '"DEFAULT_JOB_CLASS"',
  67. comments => 'JOB10',
  68. auto_drop => FALSE,
  69. enabled => TRUE);
  70. END;


  71. select * from dba_scheduler_credentials;

  72. ----

  73. select *

  74. from dba_scheduler_file_watchers fw;

  75. begin
  76. dbms_scheduler.create_file_watcher(
  77. file_watcher_name => 'hr.filewatcher1',
  78. directory_path => '/home/oracle/mydir',
  79. file_name => 'botang*.txt',
  80. credential_name => 'sys.cred1');
  81. end;


  82. begin
  83. DBMS_SCHEDULER.enable('hr.filewatcher1');
  84. end;

  85. grant execute on SYS.SCHEDULER_FILEWATCHER_RESULT to hr;

  86. ----
  87. create table hr.tfilewatcher1 ( a varchar2(200) ) ;


  88. ----

  89. create or replace procedure hr.procfilewatcher ( p_1 SYS.SCHEDULER_FILEWATCHER_RESULT)
  90. is
  91. begin
  92. insert into hr.tfilewatcher1 values ( to_char( p_1.file_timestamp,'YYYY-MM-DD:HH24:MI:SS') ||' '
  93. ||p_1.directory_path||' '
  94. ||p_1.actual_file_name||' '
  95. ||p_1.file_size ) ;
  96. commit;
  97. end;

  98. begin
  99. dbms_scheduler.create_program(
  100. program_name => 'HR.program10',
  101. program_type => 'STORED_PROCEDURE',
  102. program_action => 'HR.procfilewatcher',
  103. number_of_arguments => 1,
  104. enabled => false);
  105. end;

  106. begin
  107. dbms_scheduler.define_metadata_argument(
  108. program_name => 'HR.program10',
  109. metadata_attribute => 'event_message',argument_position => 1 ) ;
  110. end;
  111. begin
  112. dbms_scheduler.enable('HR.program10');
  113. end;


  114. begin
  115. dbms_scheduler.set_attribute('hr.job10','parallel_instances',true);
  116. end;

  117. select * from hr.tfilewatcher1;

复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-26 03:41 , Processed in 0.039828 second(s), 24 queries .

快速回复 返回顶部 返回列表