暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle计划作业,包括假脱机文件中的SQL语句

ASKTOM 2020-12-14
208

问题描述

我在Oracle上有一个计划的作业,它会在delete语句之前和之后进行计数,并将结果spool到Oracle服务器上的日志文件中。作业是类型SQL_SCRIPT。当我执行作业时,即使我在脚本中指定了SET TERM OFF ECHO OFF,SQL语句也包含在假脱机文件中。

我的问题是,当通过Oracle作业调度程序执行时,如何防止实际的SQL语句包含在假脱机文件中?

我尝试了各种选择,并搜索了数百篇文章,但在这个特定问题上没有找到任何东西。

谢谢
井架

专家解答

我已经在我自己的12c和19c系统上复制了这个,即 * most * SQL命令 (列格式,页面大小,提示等) 都工作正常,但termout/echo似乎被忽略。

我在内部询问这是一个错误还是已知的限制,但我认为目前,解决方法是使用EXTERNAL_SCRIPT类型。

因此就像

my_script := 'conn user/pass@db
set termout off
set echo off
spool ...
select object_id, object_name from all_objects;
spool off';


最终会沿着

my_script := '
#!/bin/bash
export PATH=...
export ORACLE_HOME=...
cat < /tmp/myscript.sql
set termout off
set echo off
spool ...
select object_id, object_name from all_objects;
spool off
exit
EOF

sqlplus -s user/pass@db @/tmp/myscript.sql';


不理想我知道:-(
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论