外壳脚本自动运行PL/SQL
我有PL/SQL脚本,并被要求让它们使用shell脚本自动运行。问题是,我不知道如何做到这一点,所以请如果有什么方法来帮助我做,我会感激。外壳脚本自动运行PL/SQL
我试图采取的基本知识,但它远离我需要什么:
output="$(sqlplus -S user/[email protected]//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
v_return PLS_INTEGER;
BEGIN
DBMS_OUTPUT.PUT_LINE(v_return);
END;
exit;
ENDOFSQL)"
echo $output
有人问我,让他们使用shell脚本
在首位自动运行,为什么你担心脚本自动化在数据库级别。你可以简单地安排它在OS水平cron作业。
您也可以使用DBMS_SCHEDULER
或DBMS_JOB
(以适用于您的数据库版本的数据库为准)在数据库级别安排它。
我不得不用shell脚本做到这一点,但我不知道如何下手 – 2015-02-05 15:19:24
@Achref,只要按照我的答案。还有什么关于你的吗? – 2015-02-05 15:22:38
@LalitKumarB是没有办法,我可以有 – 2015-02-05 15:30:07
你可以这样说:
sqlplus -S user/[email protected]//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
v_return PLS_INTEGER;
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World');
END;
.
/
ENDOFSQL
没有必要捕获输出的变量,如果你打算做是继呼应输出。
的问题是:如何运行PL/SQL块直接从shell。他没有提及任何关于调度的事情 - 至少我没有看到他的代码中有任何东西。 – 2015-02-05 16:22:47
你需要一个'/'后'结束;'(在新行)。但,除了我没有** **知道什么你问 – 2015-02-05 14:07:15