runtime调用sqlplus跑脚本不能正常退出,但是直接拿语句到cmd跑却正常

haha1699 2011-04-28 04:47:08
有多个sql文件,sql1,sql2,sql3。。。。。。sqln
有个汇总的allsql文件,这个文件里就是@sql1;@sql2;.....@sqln;exit;
这样在cmd里直接运行sqlplus user/password@sid @allsql可以正常的跑玩所有脚本并退出sqlplus
但是用Process pro = new Runtime.exec("sqlplus user/password@sid @allsql");pro.waitFor();会一直挂起,但是脚本已经执行完毕,allsql里已经写了exit;
另外一种情况,只有单个sql文件,里面有执行语句,最后有exit;这样runtime会正常结束

现在就是用一个汇总的sql脚本去执行所有脚本就不会正常结束,但在cmd却正常,如果执行单个脚本都正常,这是什么原因呢
...全文
76 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
haha1699 2011-04-28
  • 打赏
  • 举报
回复
在waitfor前加上
InputStream inputstream = proc.getInputStream();
inputstream.close();后才能正常执行结束
实在莫名其妙

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧