Bo's Oracle Station

查看: 5618|回复: 0

能够记住事件本身(文件属性)的filewatcher

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2020-12-6 16:50:17 | 显示全部楼层 |阅读模式
能够记住事件本身(文件属性)的filewatcher:
--hr
  1. select  * from user_sys_privs ;
复制代码
HR    CREATE EXTERNAL JOB    NO    NO
HR    CREATE EVALUATION CONTEXT    NO    NO
HR    CREATE VIEW    NO    NO
HR    UNLIMITED TABLESPACE    NO    NO
HR    CREATE DATABASE LINK    NO    NO
HR    CREATE RULE SET    NO    NO
HR    CREATE JOB    NO    NO
HR    CREATE SEQUENCE    NO    NO
HR    CREATE RULE    NO    NO
HR    CREATE SESSION    NO    NO
HR    ALTER SESSION    NO    NO
HR    CREATE SYNONYM    NO    NO

  1. [root@classroom 4]# cd /usr/lib64
  2. [root@classroom lib64]# ls -l libpam*
  3. lrwxrwxrwx 1 root root    17 12月  7 2018 libpamc.so.0 -> libpamc.so.0.82.1
  4. -rwxr-xr-x 1 root root 17048 12月  7 2018 libpamc.so.0.82.1
  5. lrwxrwxrwx 1 root root    21 12月  7 2018 libpam_misc.so.0 -> libpam_misc.so.0.82.1
  6. -rwxr-xr-x 1 root root 16704 12月  7 2018 libpam_misc.so.0.82.1
  7. lrwxrwxrwx 1 root root    16 12月  7 2018 libpam.so.0 -> libpam.so.0.84.2
  8. -rwxr-xr-x 1 root root 74600 12月  7 2018 libpam.so.0.84.2
  9. [root@classroom lib64]# ln -s libpam.so.0.84.2 libpam.so
  10. [root@classroom lib64]#
复制代码
  1. begin
  2.    dbms_scheduler.create_credential('credential10','oracle','spoto_oracle_123');
  3. end;
  4. /
复制代码
  1. select  * from dba_scheduler_credentials;
复制代码
SYS    CREDENTIAL13    HR            
SYS    CREDENTIAL10    oracle



1.png             

这是一个总队列,当你做你自己第一个filewathcer时,他就启动。我们的filewatcher都是它的实例。


  1. begin
  2.    dbms_scheduler.create_file_watcher(
  3.        file_watcher_name => 'filewatcher1',
  4.        directory_path => '/home/oracle/myfile',
  5.        file_name => 'botang*.txt',
  6.        credential_name => 'credential10');
  7. end;
  8. /

  9. select  * from dba_scheduler_file_watchers;
复制代码
SYS    FILEWATCHER1    TRUE            /home/oracle/myfile    botang*.txt    SYS    CREDENTIAL10    0        06-DEC-20 05.28.55.707615000 PM +08:00   

2020-12-06 17-32-33屏幕截图.png

  1. grant execute on filewatcher1 to hr;
  2. grant execute on SYS.SCHEDULER_FILEWATCHER_RESULT to hr;
  3. grant execute on credential10 to hr;
复制代码

  1. create table hr.tfilewatcher1 ( a  varchar2(200)  ) ;  

  2. create or replace procedure hr.procfilewatcher ( p_1   SYS.SCHEDULER_FILEWATCHER_RESULT)
  3. is
  4. begin
  5.   insert into hr.tfilewatcher1  values ( to_char( p_1.file_timestamp,'YYYY-MM-DD:HH24:MI:SS') ||'      '
  6.                                                       ||p_1.directory_path||'        '
  7.                                                       ||p_1.actual_file_name||'       '
  8.                                                       ||p_1.file_size  ) ;
  9.   commit;
  10. end;
  11. /

  12. begin
  13.     dbms_scheduler.create_program(
  14.      program_name => 'HR.program11',
  15.      program_type => 'STORED_PROCEDURE',
  16.      program_action => 'HR.procfilewatcher',
  17.      number_of_arguments => 1,
  18.      enabled => false);
  19. end;
  20. /

  21. begin
  22.    dbms_scheduler.define_metadata_argument(
  23.    program_name => 'HR.program11',
  24.    metadata_attribute => 'event_message',argument_position => 1 ) ;
  25. end;
  26. /

  27. begin
  28.   dbms_scheduler.enable('HR.program11');
  29. end;
  30. /
复制代码
  1. BEGIN
  2.   DBMS_SCHEDULER.CREATE_JOB(
  3.    jOB_NAME=> 'hr.job11',
  4.    PROGRAM_NAME=> 'hr.program11',
  5.    EVENT_CONDITION => 'tab.user_data.file_size > 10',
  6.    QUEUE_SPEC=> 'sys.filewatcher1',
  7.    AUTO_DROP=> FALSE,
  8.    ENABLED=> true);
  9. END;
复制代码

  1.   begin
  2.    dbms_scheduler.set_attribute('hr.job11','parallel_instances',true);
  3. end;
  4. /
复制代码


回复

使用道具 举报

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

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-29 07:40 , Processed in 0.035367 second(s), 27 queries .

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