我想查看某个存储过程是否被执行 5C

我定义了一个job,job里面有个存储过程,存储内容是根据日期判断是否执行另外一个存储过程。

 create or replace procedure autoetl_day (indate  in  date)
is    --输入参数
flg number;
mlg number;
begin
   --如果是周六日被节假日调休的情况,且该日期是周六或者周日
   select count(1)  into  flg from FESTIVAL  f      where  f.festival_day=indate    and f.fe_lag=1;
   select count(1)  into mlg  from FESTIVAL  f1      where  f1.festival_day=indate  and f1.fe_lag=0;
        if (flg)=1 and    (to_char(indate,'d') ='1' or  to_char(indate,'d') ='7') 
     then  
        a_etl_proc;  dbms_output.put_line(' 假日调休抽取'||indate);
     insert into LION_ETL_LOG(ETL_LOGCONTENT) values('调休日抽取'||to_char(indate,'yyyymmdd')||'抽取完成');
    else if  --如果是节日情况
         mlg<>0
        then       dbms_output.put_line('节日 不抽取'||indate);
    else if   (to_char(indate,'d') ='1' or  to_char(indate,'d') ='7') 
      then      dbms_output.put_line(' 周六日不抽取'||indate);
      else 
             a_etl_proc; dbms_output.put_line(' 工作日抽取'||indate);
              insert into LION_ETL_LOG(ETL_LOGCONTENT) values('工作日'||to_char(indate,'yyyymmdd')||'抽取完成');
        end if;
        end if;
      end if;
        commit;
    end;         

各位大神,请问,我如何查询A_ETL_PROC的每天执行记录?

4个回答

select * from sys.dm_exec_procedure_stats

第一种:查Slow query的SQL语法:

log_slow_queries = /var/log/mysql/mysql-slow.log

long_query_time = 2 (超过2秒的SQL语法记录起来,设短一点来记录除错也是一种方法.)

第二种:设MySQL Replication用binlog:

log_bin = /var/log/mysql/mysql-bin.log (此档要用mysqlbinlog解来看,

mysqlbinlog mysql-bin.000042| grep "T_ABC" | grep "column value"

)

mysql会将所有INSERT/UPDATE/DELETE语法记于此(但是语法可能跟你想的不同),这是要写给SLAVE用的log 文件

第三种:推荐此方法,将MySQL执行的每行指令全都记录起来:

log = /tmp/mysql.log

restart mysql后, tail -f /tmp/mysql.log就可以看到
链接:

 http://blog.csdn.net/kenera/article/details/5624981

og_slow_queries = /var/log/mysql/mysql-slow.log

long_query_time = 2 (超过2秒的SQL语法记录起来,设短一点来记录除错也是一种方法.)

如果这块的记录是要给非开发人员看的建议建张表,A_ETL_PROC里加一条执行记录,插入到新建的表里。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问