Answers:
另一种方法是在批处理文件中使用此命令:
echo exit | sqlplus user/pass@connect @scriptname
我发现这是最好的解决方案,它可以在终端或脚本中运行:
echo @scriptname | sqlplus username/password@connect
隐藏用户信息和退出的最佳方法是:
exit | sqlplus -S user/pwd@server @script.sql
exit
提供给sqlplus的输出,强制其退出。-S
禁止脚本中除sql query之外的所有服务器输出。
是的,有可能-生成一个包装器脚本,该脚本适当地设置SQLPlus,包括您的脚本(即@YourTargetScript.sql
),然后退出。
就是说,我根本不推荐这种方法,因为SQLPlus有很多可用于程序设计的陷阱。过去使用Oracle编写Shell脚本时,我围绕它构建了一个Python包装器(添加了更合理的错误处理行为,stdout / stderr之间输出的合理分离,本机CSV输出支持以及其他类似的东西),并且可以正常工作好多了。
像这样:
sqlplus / nolog用户ID /密码@tnsname @文件名
如果将其放在批处理文件中,控制将继续其后的语句。
编辑:我不好,请使用/ nolog标志再试一次
对于那些担心在脚本中包含密码的安全性的人,AskTom上有一篇有关“外部标识”的文章 http://asktom.oracle.com/pls/apex/f?p = 100:11:0 :::: P11_QUESTION_ID:142212348066
在您的SQL脚本中添加EXIT。这是我的test.bat文件具有以下示例:
sqlplus用户/ pwd @ server @ test.SQL> myLOG.LOG
我的test.sql文件具有以下内容:选择* from dual; 出口
退出 SQLPLUS / @ @
这是正确的解决方案,我已经尝试过了