Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 在unix脚本中调用PL/SQL块_Oracle_Unix_Plsql_Sqlplus - Fatal编程技术网

Oracle 在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

我正在尝试使用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_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-嗯,我所说的“代码效率”实际上是指编写代码,而不是执行代码。当然,如果我需要多次引用同一个值,我会把它放在它自己的变量中。但在这种情况下,当它显示给定活动的当前时间时,在已有内置变量的情况下,在变量中捕获当前时间是毫无意义的。请注意,“echo
date
”与“echo$(date)”相同。为什么时间戳在两周前?我明白了。您有一台老式的慢速虚拟机……;-)作为一个关于编码效率的旁白。。。您可以/应该只简单地“echo Script execution finished at$(date)”,而不是两行“current_time=
date
”和“echo Script execution finished at$(current_time)”@EdStevens:忘记编码效率。对我来说,这一切都是关于代码的冗长,以及想知道当前时间是否会在某个地方再次被使用。@wallyk-嗯,我所说的“代码效率”实际上是指编写代码,而不是执行代码。当然,如果我需要多次引用同一个值,我会把它放在它自己的变量中。但在这种情况下,当它显示给定活动的当前时间时,在已有内置变量的情况下,在变量中捕获当前时间是毫无意义的。请注意,“echo
date
”与“echo$(date)”相同。