【发布时间】:2018-02-22 17:31:48
【问题描述】:
我正在尝试使用 java 在 sqlplus 上运行 sql 文件。几乎尝试了互联网上的所有内容,但仍然没有找到有关此问题的任何线索。下面的代码运行 cmd ,将 sqlplus 与我的凭据连接并处理我的文件,但控制台日志仍然挂起,无法写入创建的表或其他内容。在 db 端,根本没有创建表。 当我手动尝试我的步骤时,我手动模拟了 cmd,在@pathtoscriptfile 命令之后我需要“/”并按回车键创建表。 我无法在 java 上模拟这个目的。
有什么帮助吗?
public static void main(String[] args) throws IOException {
String[] command = {"sqlplus", "username/password@ip:port/servicename", "@C:/Users/erkan.erkisi/Desktop/Jenkins/123.sql"};
ProcessBuilder probuilder = new ProcessBuilder( command );
Process process = probuilder.start();
//Read out dir output
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running %s is:\n",
Arrays.toString(command));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
//Wait to get exit value
try {
int exitValue = process.waitFor();
System.out.println("\n\nExit Value is " + exitValue);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我正在尝试执行的那个文件中的脚本(这是示例代码,可能是包、过程等);
create table xxer_erkan (
id number,
tarih date)
【问题讨论】: