我有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
答案 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_SCHEDULER
或DBMS_JOB
在数据库级别安排它,适用于您的数据库版本。