在SQLPlus中的脚本之后退出?

时间:2016-08-09 21:41:05

标签: linux oracle sqlplus

我一直在寻找各地,帖子建议管道echo exit | sqlplus @script.sql,但我的脚本包含输入的PL / SQL语句,因此只要输出PROMPT消息,exit开始,脚本退出。

这里是linux调用

alias sql 'sqlplus -s user/pass'

sql @test.sql

脚本执行正常并在数据库中执行INSERT,但是它只是等待我在执行后键入退出。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

显而易见的事情是修改脚本以使exit结束。如果你不能这样做,你可以创建一个临时文件,例如:

(cat test.sql && echo exit) > /tmp/test_$$.sql
sql @/tmp/test_$$.sql
rm -f /tmp/test_$$.sql

文件名中的$$被当前进程的ID(PID)替换,因此如果脚本同时运行两次,则每个脚本将获得不同的文件名;然后它在最后删除。 (您可以先进行保护性删除,或者检查它是否已经存在,以防万一早先删除失败)。

相关问题