为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:windows
【CPU】:
【问题描述】*:java调用disql命令执行sql文件不生效问题咨询,代码如下
try {
String dbconn = "SYSDBA/SYSDBA@127.0.0.1:5236";
List<String> command = Arrays.asList("D:\dmdbms\bin\DIsql.exe", dbconn, "`" + sqlFilePath);
ProcessBuilder pb = new ProcessBuilder(command);
// 构建并执行进程
Process process = pb.start();
try (PrintWriter writer = new PrintWriter(process.getOutputStream())) {
writer.println("exit;");
writer.flush(); // 刷新缓冲区,确保命令被立即发送
}
// 处理进程输出和错误流
BufferedReader stdOutReader = new BufferedReader(new InputStreamReader(process.getInputStream(), StandardCharsets.UTF_8));
BufferedReader stdErrReader = new BufferedReader(new InputStreamReader(process.getErrorStream(), StandardCharsets.UTF_8));
String outputLine;
while ((outputLine = stdOutReader.readLine()) != null) {
LOGGER.info(outputLine);
}
while ((outputLine = stdErrReader.readLine()) != null) {
LOGGER.error(outputLine);
}
// 等待进程结束并获取退出码
int exitCode = process.waitFor();
System.out.println("Process exited with code " + exitCode);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
我用您提供的代码试了一下,没有问题呢,您执行的sql文件内容是什么