Psql script not committing when executed from Java
我有一个.bat文件,执行psql命令导入SQL脚本文件。 当我从Windows命令行执行.bat文件时,它正确执行。 但是当我从Java调用.bat文件(使用ProcessBuilder)时,脚本不会结束。 我没有收到任何错误,不是在InputStream,ErrorStream甚至在DB(Postgresql)日志中都没有。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ArrayList<String> cmdArgs2 = new ArrayList<String>(); cmdArgs2.add("sql2dbs.bat"); ProcessBuilder pb2 = new ProcessBuilder(cmdArgs2); logger.info(pb2.command().toString()); Map<String, String> env = pb2.environment(); env.put("PGPASSWORD","user"); Process p2 = pb2.start(); BufferedReader stdError2 = new BufferedReader(new InputStreamReader(p2.getErrorStream())); String s; while ((s = stdError2.readLine()) != null) { logger.info(s); } BufferedReader stdIn = new BufferedReader(new InputStreamReader(p2.getInputStream())); while ((s = stdIn.readLine()) != null) { logger.info(s); } p2.waitFor(); |
SQL脚本很长,这就是为什么我不添加它。 该脚本底部有一个COMMIT语句。
有任何想法吗? 谢谢,
不要使用