注册

java调用disql执行sql文件问题咨询

卡卡罗特 2024/08/23 340 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【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);
}

回答 0
暂无回答
扫一扫
联系客服