Oracle 在unix脚本中调用PL/SQL块
我正在尝试使用sqlplus在unix脚本中调用pl/sql块。我只是试着打印一份声明,但没有打印任何内容,我也没有收到任何错误Oracle 在unix脚本中调用PL/SQL块,oracle,unix,plsql,sqlplus,Oracle,Unix,Plsql,Sqlplus,我正在尝试使用sqlplus在unix脚本中调用pl/sql块。我只是试着打印一份声明,但没有打印任何内容,我也没有收到任何错误 Result=`sqlplus -s $TgtUsrID/$TgtPswd@$TgtServer <<eof whenever sqlerror exit sql.sqlcode; SET SERVEROUTPUT ON; BEGIN DBMS_OUTPUT.PUT_LINE('Hello World!'); END; eof ` current_t
Result=`sqlplus -s $TgtUsrID/$TgtPswd@$TgtServer <<eof
whenever sqlerror exit sql.sqlcode;
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
eof
`
current_time=`date`
echo " Script execution finished at $current_time"
Result=`sqlplus-s$TgtUsrID/$TgtPswd@$TgtServer只需在最后一个EOF
之后使用美元运算符预先添加变量(Result
)
与echo
命令一起使用,例如
Result=`sqlplus -S /nolog << EOF
conn $TgtUsrID/$TgtPswd@$TgtServer
whenever sqlerror exit sql.sqlcode
set feedback off
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
/
EOF`
echo $Result
echo Script execution finished at $(date)
其中,在最后一个echo
之后引用描述是多余的,并且更愿意使用与/nolog
的连接作为更安全的连接,因为只要在当前情况下发出ps-ef
命令,架构的密码就会被公开。只需要预先添加变量(Result
)在最后一个EOF
与echo
命令一起使用,例如
Result=`sqlplus -S /nolog << EOF
conn $TgtUsrID/$TgtPswd@$TgtServer
whenever sqlerror exit sql.sqlcode
set feedback off
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
/
EOF`
echo $Result
echo Script execution finished at $(date)
其中,在最后一个echo
之后的描述引用是多余的,并且更喜欢使用与/nolog
的连接作为更安全的连接,因为只要在当前情况下发出ps-ef
命令,架构的密码就会被公开。为什么时间戳超过2周?我明白了。您有一台老式的慢速虚拟机……;-)作为一个关于编码效率的旁白。。。您可以/应该只简单地“echo Script execution finished at$(date)”,而不是两行“current_time=date
”和“echo Script execution finished at$(current_time)”@EdStevens:忘记编码效率。对我来说,这一切都是关于代码的冗长,以及想知道当前时间是否会在某个地方再次被使用。@wallyk-嗯,我所说的“代码效率”实际上是指编写代码,而不是执行代码。当然,如果我需要多次引用同一个值,我会把它放在它自己的变量中。但在这种情况下,当它显示给定活动的当前时间时,在已有内置变量的情况下,在变量中捕获当前时间是毫无意义的。请注意,“echodate
”与“echo$(date)”相同。为什么时间戳在两周前?我明白了。您有一台老式的慢速虚拟机……;-)作为一个关于编码效率的旁白。。。您可以/应该只简单地“echo Script execution finished at$(date)”,而不是两行“current_time=date
”和“echo Script execution finished at$(current_time)”@EdStevens:忘记编码效率。对我来说,这一切都是关于代码的冗长,以及想知道当前时间是否会在某个地方再次被使用。@wallyk-嗯,我所说的“代码效率”实际上是指编写代码,而不是执行代码。当然,如果我需要多次引用同一个值,我会把它放在它自己的变量中。但在这种情况下,当它显示给定活动的当前时间时,在已有内置变量的情况下,在变量中捕获当前时间是毫无意义的。请注意,“echodate
”与“echo$(date)”相同。