注册

linux环境,java调用 .disql命令无法正常执行sql脚本文件

Sam 2024/03/11 717 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: V8.0
【操作系统】:银河麒麟桌面操作系统V4
【CPU】:
【问题描述】*:在麒麟环境通过terminal执行 ./disql SYSDBA/SYSDBA@127.0.0.1:5236 '/test.sql' 或者 ./disql SYSDBA/SYSDBA@127.0.0.1:5236 \/test.sql 都是可以正常执行test.sql的,然而需要通过java控制执行多个sql脚本,在linux环境下无法正常执行test.sql脚本。也并没有报错,从执行的日志来看,猜测就是'/teset.sql' 或者 \/test.sql传入参数有误。有大佬遇到过这种问题吗?

List<String> command = Arrays.asList("./disql", dbconn, "'`/test.sql'"); ProcessBuilder pb = new ProcessBuilder(command); // 设置工作目录 pb.directory(workDirPath.toFile()); // 构建并执行进程 Process process = pb.start(); // 处理进程输出和错误流 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);
回答 0
暂无回答
扫一扫
联系客服