问题描述
嗨,askTome团队。
我有两个数据库,一个名字是prod,另一个是test。
他们的版本是12.2.0.1
我像这样在db:prod上创建一个调度程序作业
为什么调度程序作业不引发错误,以及如何在使用调度程序作业时引发错误,job_type是 “SQL_SCRIPT” 或 “BACKUP_SCRIPT”。
非常感谢。
我有两个数据库,一个名字是prod,另一个是test。
他们的版本是12.2.0.1
我像这样在db:prod上创建一个调度程序作业
begin
dbms_scheduler.create_job(
job_name=>'J_TEST_02',
job_type=>'SQL_SCRIPT',
job_action=>,
credential_name=>'C_OS_ORA12C2_01',
auto_drop=>false,
enabled=>false
);
end;
v_scripts is my procedure.
I test this job used a invalid job_action which like this
"select 1+2 from dual;".
begin
dbms_scheduler.run_job(
job_name=>'J_TEST_02',
use_current_session=>false
);
end;
BUT when I check the user_scheduler_job_run_details, I found the record about run this job was SUCCEEDED.
AND the col OUTPUT is
SQL*Plus: Release 12.2.0.1.0 Production on Mon Apr 24 11:10:34 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
SQL> SP2-0640: Not connected
SQL>
为什么调度程序作业不引发错误,以及如何在使用调度程序作业时引发错误,job_type是 “SQL_SCRIPT” 或 “BACKUP_SCRIPT”。
非常感谢。
专家解答
SQL_SCRIPT作业类型实际上是您将提供给SQLPlus会话的 * content *,该会话以以下方式启动:
sqlplus /nolog
所以 'v_script '需要类似的东西:
连接斯科特/老虎
阀芯输出。lst
从dual中选择1 2;
阀芯关闭
在您的情况下,您从未连接过,但我们确实设法运行了sqlplus,并且没有收到任何数据库错误。
显然,出于安全原因,脚本中的 'connect' 语句通常不是一件好事,因此调度程序也支持凭据,即,您可以创建凭据,然后提交通过预构建的凭据的SQL_SCRIPT作业。
sqlplus /nolog
所以 'v_script '需要类似的东西:
连接斯科特/老虎
阀芯输出。lst
从dual中选择1 2;
阀芯关闭
在您的情况下,您从未连接过,但我们确实设法运行了sqlplus,并且没有收到任何数据库错误。
显然,出于安全原因,脚本中的 'connect' 语句通常不是一件好事,因此调度程序也支持凭据,即,您可以创建凭据,然后提交通过预构建的凭据的SQL_SCRIPT作业。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




