Shell脚本自动运行PL / SQL

时间:2015-02-05 13:58:46

标签: oracle bash shell plsql dbms-scheduler

我有PL / SQL脚本,我被要求使用shell脚本自动运行它们。问题是我不知道如何做到这一点,所以如果有任何方法可以帮助我这样做,我将感激不尽。

我试图采用基础知识,但它远离我的需要:

output="$(sqlplus -S user/pw@//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
    v_return PLS_INTEGER;
BEGIN

    DBMS_OUTPUT.PUT_LINE(v_return);
END;
exit;
ENDOFSQL)"

echo $output 

2 个答案:

答案 0 :(得分:2)

你可以这样做:

sqlplus -S user/pw@//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
    v_return PLS_INTEGER;
BEGIN

    DBMS_OUTPUT.PUT_LINE('Hello World');
END;
.
/

ENDOFSQL

如果您要做的只是事后回显输出,则无需捕获变量中的输出。

答案 1 :(得分:1)

  

我被要求使用shell脚本自动运行

首先,您为什么要担心数据库级别的脚本自动化。您可以在 OS 级别将其安排为 cron job

您还可以使用DBMS_SCHEDULERDBMS_JOB在数据库级别安排它,适用于您的数据库版本。