感激不尽!
11 个解决方案
#1
帮LZ顶一下,java不是很熟
#2
System.runtime.exec('sqlplus @script.sql');
#3
括号里面我是这样写的,怎么不可以 ! 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就不可以了是怎么回事?
路径是正确的!
在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就不可以了是怎么回事?
路径是正确的!
#4
这是通过java执行cmd的方式
Runtime.getRuntime().exec("sqlplus username/pwd@tnsname @你的sql的脚本文件") 需要sqlplus环境,和正确的tnsname配置,如果是远程的话,这里基本和命令行的方式一样了。
还有通过纯的java方式的
可以使用dbutils的工具包,这是apache提供的一个java包。
里面可以通过api的方式直接执行脚本,还可以从execl文件导入数据,等高级功能。
Runtime.getRuntime().exec("sqlplus username/pwd@tnsname @你的sql的脚本文件") 需要sqlplus环境,和正确的tnsname配置,如果是远程的话,这里基本和命令行的方式一样了。
还有通过纯的java方式的
可以使用dbutils的工具包,这是apache提供的一个java包。
里面可以通过api的方式直接执行脚本,还可以从execl文件导入数据,等高级功能。
#5
所路径中的空格去掉试试
#6
inthirties
(Inthirties)
可以说清楚一点吗?什么配置?
我是按你那样写的可是程序直接挂起不跑了!
(Inthirties)
可以说清楚一点吗?什么配置?
我是按你那样写的可是程序直接挂起不跑了!
#7
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("到这里了!");就没有执行了
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("到这里了!");就没有执行了
#8
现在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("到这里了!");的前面就挂起了,进程被锁,请问有什么方法解决??
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("到这里了!");的前面就挂起了,进程被锁,请问有什么方法解决??
#9
你怎么没有catch语句啊,加上去,看看到底发生了什么
#10
问题更新:
我按网上的开启了两个线程可是在这里还是被挂起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();
我按网上的开启了两个线程可是在这里还是被挂起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();
#11
我想知道isqlplus里怎么调用脚本!
#1
帮LZ顶一下,java不是很熟
#2
System.runtime.exec('sqlplus @script.sql');
#3
括号里面我是这样写的,怎么不可以 ! 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就不可以了是怎么回事?
路径是正确的!
在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就不可以了是怎么回事?
路径是正确的!
#4
这是通过java执行cmd的方式
Runtime.getRuntime().exec("sqlplus username/pwd@tnsname @你的sql的脚本文件") 需要sqlplus环境,和正确的tnsname配置,如果是远程的话,这里基本和命令行的方式一样了。
还有通过纯的java方式的
可以使用dbutils的工具包,这是apache提供的一个java包。
里面可以通过api的方式直接执行脚本,还可以从execl文件导入数据,等高级功能。
Runtime.getRuntime().exec("sqlplus username/pwd@tnsname @你的sql的脚本文件") 需要sqlplus环境,和正确的tnsname配置,如果是远程的话,这里基本和命令行的方式一样了。
还有通过纯的java方式的
可以使用dbutils的工具包,这是apache提供的一个java包。
里面可以通过api的方式直接执行脚本,还可以从execl文件导入数据,等高级功能。
#5
所路径中的空格去掉试试
#6
inthirties
(Inthirties)
可以说清楚一点吗?什么配置?
我是按你那样写的可是程序直接挂起不跑了!
(Inthirties)
可以说清楚一点吗?什么配置?
我是按你那样写的可是程序直接挂起不跑了!
#7
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("到这里了!");就没有执行了
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("到这里了!");就没有执行了
#8
现在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("到这里了!");的前面就挂起了,进程被锁,请问有什么方法解决??
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("到这里了!");的前面就挂起了,进程被锁,请问有什么方法解决??
#9
你怎么没有catch语句啊,加上去,看看到底发生了什么
#10
问题更新:
我按网上的开启了两个线程可是在这里还是被挂起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();
我按网上的开启了两个线程可是在这里还是被挂起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();
#11
我想知道isqlplus里怎么调用脚本!