java中调用 sqlplus执行sql脚本 求一句 java中调用 sqlplus执行sql脚本 的语句格式!感激不尽! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.runtime.exec('sqlplus @script.sql'); 括号里面我是这样写的,怎么不可以 ! sqlplus test/test@orcl @C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\setup/data/oracle/database.sql在sqlplus中单独执行sqlplus test/test@orcl可以通过然后执行@D:\sql\database.sql;也可以通过,但是把@D:\sql\database.sql;改成@C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\setup/data/oracle/database.sql就不可以了是怎么回事?路径是正确的! 这是通过java执行cmd的方式Runtime.getRuntime().exec("sqlplus username/pwd@tnsname @你的sql的脚本文件") 需要sqlplus环境,和正确的tnsname配置,如果是远程的话,这里基本和命令行的方式一样了。还有通过纯的java方式的可以使用dbutils的工具包,这是apache提供的一个java包。里面可以通过api的方式直接执行脚本,还可以从execl文件导入数据,等高级功能。 inthirties (Inthirties) 可以说清楚一点吗?什么配置?我是按你那样写的可是程序直接挂起不跑了! Process proc = rt.exec(cmd); InputStream stderr = proc.getErrorStream(); InputStreamReader isr = new InputStreamReader(stderr); BufferedReader br = new BufferedReader(isr); String line = null; System.out.println("----------------"); while ((line = br.readLine()) != null){ System.out.println(br.readLine()); } System.out.println("到这里了!");System.out.println("到这里了!");就没有执行了 现在cmd是这样写的 cmd="sqlplus test/test@orcl @d://sql//database.sql"; Runtime rt=Runtime.getRuntime(); rt.exec(cmd);InputStream stderr = proc.getErrorStream(); InputStreamReader isr = new InputStreamReader(stderr); BufferedReader br = new BufferedReader(isr); String line = null; System.out.println("----------------"); while ((line = br.readLine()) != null){ System.out.println(br.readLine()); } System.out.println("到这里了!"); 程序到这里:System.out.println("到这里了!");的前面就挂起了,进程被锁,请问有什么方法解决?? 你怎么没有catch语句啊,加上去,看看到底发生了什么 问题更新: 我按网上的开启了两个线程可是在这里还是被挂起exitVal = proc.waitFor();不知道是为什么!请高手指点!代码:cmd= "cmd.exe /c sqlplus "+user2+"/"+pwd2+"@orcl @"+fPath;//cmd= "cmd.exe /c "+"start d:\\sql\\database.sql"; System.out.println("cmd="+cmd);Process proc = rt.exec(cmd); StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(),"Error");StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(),"Output"); errorGobbler.start();outputGobbler.start();System.out.println("----------------"); exitVal = proc.waitFor(); System.out.println(exitVal+"到这里你就成功了!");执行到这里还被挂起:proc.waitFor(); 我想知道isqlplus里怎么调用脚本! 一个SQL写法的请教 CRS-0184: Cannot communicate with the CRS daemon. RAC重启错误 初学oracle ORACLE中同一张表有的字段中文乱码有的显示正常 Oracle Sql Scratchpad中能执行存储过程吗?用execute 求助:一条有条件的插入SQL 急!简单问题,抢分了,在线等 如何建立客户机和服务器之间的Oracle链接 关于查询的问题(在线等你回答) 一个ORACLE日期问题 [在线求助]通过PLSQL_ODBC导入器导入excel某日期列sysdate,报错?? 压缩表添加新列?
路径是正确的!
Runtime.getRuntime().exec("sqlplus username/pwd@tnsname @你的sql的脚本文件") 需要sqlplus环境,和正确的tnsname配置,如果是远程的话,这里基本和命令行的方式一样了。还有通过纯的java方式的
可以使用dbutils的工具包,这是apache提供的一个java包。
里面可以通过api的方式直接执行脚本,还可以从execl文件导入数据,等高级功能。
(Inthirties) 可以说清楚一点吗?什么配置?我是按你那样写的可是程序直接挂起不跑了!
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("----------------");
while ((line = br.readLine()) != null){
System.out.println(br.readLine());
}
System.out.println("到这里了!");
System.out.println("到这里了!");就没有执行了
Runtime rt=Runtime.getRuntime(); rt.exec(cmd);
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null; System.out.println("----------------");
while ((line = br.readLine()) != null){
System.out.println(br.readLine());
}
System.out.println("到这里了!");
程序到这里:System.out.println("到这里了!");的前面就挂起了,进程被锁,请问有什么方法解决??
//cmd= "cmd.exe /c "+"start d:\\sql\\database.sql";
System.out.println("cmd="+cmd);
Process proc = rt.exec(cmd);
StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(),"Error");
StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(),"Output");
errorGobbler.start();
outputGobbler.start();System.out.println("----------------");
exitVal = proc.waitFor();
System.out.println(exitVal+"到这里你就成功了!");执行到这里还被挂起:proc.waitFor();