使用 java 调用达梦数据库dexp 命令进行导出表,如果表名中包含空格字符,使用java调用 会报 无法正确解析导出Tables 的列表,命令复制到命令行,可以正常执行
问题根源分析
dexp ... tables="My Table With Space"
dexp
解决步骤
String tableName = "My Table With Space"; String command = String.format("dexp ... tables=\"%s\"", tableName); // 或者使用ProcessBuilder正确处理参数 ProcessBuilder pb = new ProcessBuilder(); pb.command("dexp", "...", "tables=" + tableName.replace(" ", "\\ ")); // 示例
1、建议附上demo
2、参考以下“问题分析与解决步骤”
问题根源分析
dexp ... tables="My Table With Space"
),从而正确解析。dexp
命令时,直接传递包含空格的表名可能导致参数未被正确转义或分割,导致命令行解析失败。解决步骤
dexp
文档,确认其对包含空格的表名的支持方式。String tableName = "My Table With Space"; String command = String.format("dexp ... tables=\"%s\"", tableName); // 或者使用ProcessBuilder正确处理参数 ProcessBuilder pb = new ProcessBuilder(); pb.command("dexp", "...", "tables=" + tableName.replace(" ", "\\ ")); // 示例