今天做了一个用java导入sql脚本的功能,前台上传一个sql文件,后台先保存本地,然后进行导入。主要代码如下:

String cmd = "cmd /c sqlplus usr/pwd@{//服务器IP:1521/}sid @d:\\1.sql>d:\\t.log";
Process p = null;
try {
    p = Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (p != null) {
    try {
        p.waitFor();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    p.destroy();
    }
}

注:1.sql文件中必须要有/

    2.如果没有在sql最后一行加入exit则,执行完后,process实例仍然出于等待中,具体可以自行尝试cmd中执行。如需sql执行完程序关闭则最后一行加入exit。

    3.上面的服务器IP和端口号是可选的,如果你已经配置了Net manager,则直接引用配置的sid就行了。