创建了一个JOB,作用是刷新物化视图MV_D515_LQ,成功创建了,但是一些天后,发现此物化视图并没有刷新,后来才发现
JOB并没有成功运行,在日志中发现了如下的错误提示
ORA-12012: 自动执行作业 "SXXNH"."JOB_MV_D515_LQ" 出错
ORA-06550: 第 1 行, 第 776 列:
PLS-00357: 在此上下文中不允许表, 视图或序列引用 'MV_D515_LQ'
ORA-06550: 第 1 行, 第 756 列:
仔细检查了下创建后的job与创建job的语句:
SELECT * FROM USER_SCHEDULER_JOBS
发现是创建的时候出了点小问题,创建语句如下:
BEGIN
DBMS_SCHEDULER.create_job(
job_name => 'JOB_TJ_D506',
schedule_name => 'NINE_SCHEDULE',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN DBMS_REFRESH.REFRESH('TJ_D506'); END;',
comments => '每天刷新物化视图JOB_TJ_D506',
auto_drop => false,
enabled => false);
END;
问题就出在了job_action这里了:TJ_D506应该用两个单引号括起来才对(''TJ_D506'')
JOB并没有成功运行,在日志中发现了如下的错误提示
ORA-12012: 自动执行作业 "SXXNH"."JOB_MV_D515_LQ" 出错
ORA-06550: 第 1 行, 第 776 列:
PLS-00357: 在此上下文中不允许表, 视图或序列引用 'MV_D515_LQ'
ORA-06550: 第 1 行, 第 756 列:
仔细检查了下创建后的job与创建job的语句:
SELECT * FROM USER_SCHEDULER_JOBS
发现是创建的时候出了点小问题,创建语句如下:
DBMS_SCHEDULER.create_job(
job_name => 'JOB_TJ_D506',
schedule_name => 'NINE_SCHEDULE',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN DBMS_REFRESH.REFRESH('TJ_D506'); END;',
comments => '每天刷新物化视图JOB_TJ_D506',
auto_drop => false,
enabled => false);
END;
问题就出在了job_action这里了:TJ_D506应该用两个单引号括起来才对(''TJ_D506'')
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27661381/viewspace-1190107/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27661381/viewspace-1190107/