我一直在寻找各地,帖子建议管道echo exit | sqlplus @script.sql
,但我的脚本包含输入的PL / SQL语句,因此只要输出PROMPT
消息,exit
开始,脚本退出。
这里是linux调用
alias sql 'sqlplus -s user/pass'
sql @test.sql
脚本执行正常并在数据库中执行INSERT
,但是它只是等待我在执行后键入退出。
有什么想法吗?
答案 0 :(得分:1)
显而易见的事情是修改脚本以使exit
结束。如果你不能这样做,你可以创建一个临时文件,例如:
(cat test.sql && echo exit) > /tmp/test_$$.sql
sql @/tmp/test_$$.sql
rm -f /tmp/test_$$.sql
文件名中的$$
被当前进程的ID(PID)替换,因此如果脚本同时运行两次,则每个脚本将获得不同的文件名;然后它在最后删除。 (您可以先进行保护性删除,或者检查它是否已经存在,以防万一早先删除失败)。