Shell 脚本自动 运行 PL/SQL
Shell script to automatically run PL/SQL
我有 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
I was asked to make them run automatically using shell scripts
首先,您为什么担心数据库级别的脚本自动化。您可以简单地将其安排为 cron 作业 在 OS 级别。
您还可以使用 DBMS_SCHEDULER
或 DBMS_JOB
在数据库级别安排它,以适用于您的数据库版本为准。
你可以这样做:
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
如果您要做的只是事后回显输出,则无需在变量中捕获输出。
我有 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
I was asked to make them run automatically using shell scripts
首先,您为什么担心数据库级别的脚本自动化。您可以简单地将其安排为 cron 作业 在 OS 级别。
您还可以使用 DBMS_SCHEDULER
或 DBMS_JOB
在数据库级别安排它,以适用于您的数据库版本为准。
你可以这样做:
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
如果您要做的只是事后回显输出,则无需在变量中捕获输出。