I was trying to run oracle exp through the java, code was like:
....
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
%)");
p.waitFor(); //this line will make the p hang!!! p can exit normally
without it.
...
But the program hang there never get finished.
I tried this:
....
Runtime runtime = Runtime.getRuntime();
Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
%)");
Thread.sleep(10000); //obviously p has exited after this
System.out.println(""+p.exitValue());
...
the last line throws an exception saying the process has not exit yet.
The environment is Eclipse, Java 1.5, Junit
But I didn't find such behavior with calling sqlplus this way. Any
idea what make this EXP utility not working with java runtime?
Thx
Boxer <jianni
@gmail.com> wrote in news:1178977735.858124.109000
@p77g2000hsh.googlegroups.com:
> I was trying to run oracle exp through the java, code was like:
> ....
> Runtime runtime = Runtime.getRuntime();
> Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
> %)");
> p.waitFor(); //this line will make the p hang!!! p can exit normally
> without it.
> ...
> But the program hang there never get finished.
> I tried this:
> ....
> Runtime runtime = Runtime.getRuntime();
> Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
> %)");
> Thread.sleep(10000); //obviously p has exited after this
> System.out.println(""+p.exitValue());
> ...
> the last line throws an exception saying the process has not exit yet.
> The environment is Eclipse, Java 1.5, Junit
> But I didn't find such behavior with calling sqlplus this way. Any
> idea what make this EXP utility not working with java runtime?
> Thx
A couple of observations/comments:
AFAIK, TABLES= does not support the inclusion of schema owner.
On some/many/most OS the wild card character is "*"; not "%"
AFAIK, the TABLES= does not support use of any wild card character.
Have you tried:
exp scott/tiger File=scott.dmp OWNER=scott
-----------------------------------------------Reply-----------------------------------------------
using the shell command with:
exp dbaaccount/dbapwd@sid FILE=c:\scott.dmp TABLES=(SCOTT.%)
The program runs without any problem. BTW, the Oracle version is 9i
-----------------------------------------------Reply-----------------------------------------------
Boxer wrote:
> I was trying to run oracle exp through the java, code was like:
> ....
> Runtime runtime = Runtime.getRuntime();
> Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
> %)");
> p.waitFor(); //this line will make the p hang!!! p can exit normally
> without it.
> ...
> But the program hang there never get finished.
> I tried this:
> ....
> Runtime runtime = Runtime.getRuntime();
> Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
> %)");
> Thread.sleep(10000); //obviously p has exited after this
> System.out.println(""+p.exitValue());
> ...
> the last line throws an exception saying the process has not exit yet.
> The environment is Eclipse, Java 1.5, Junit
> But I didn't find such behavior with calling sqlplus this way. Any
> idea what make this EXP utility not working with java runtime?
If the exp command outputs any text, then you should read that
(and printing it may actually help you troubleshoot).
Arne
-----------------------------------------------Reply-----------------------------------------------
I pipe and print from both the output and error stream of the exp
process sprawn by Java runtime. It doesn't printout any thing? That is
what make it so weird!
-----------------------------------------------Reply-----------------------------------------------
In Windows, sometimes it helps to append cmd /c to the exectuable you
are running, i.e. to execute "cmd /c exp scott...."
T
On May 12, 4:48 pm, Boxer <jianni@gmail.com> wrote:
> I was trying to run oracle exp through the java, code was like:
> ....
> Runtime runtime = Runtime.getRuntime();
> Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
> %)");
> p.waitFor(); //this line will make the p hang!!! p can exit normally
> without it.
> ...
> But the program hang there never get finished.
> I tried this:
> ....
> Runtime runtime = Runtime.getRuntime();
> Process p = runtime.exec("exp scott/tiger File=scott.dmp TABLES=(scott.
> %)");
> Thread.sleep(10000); //obviously p has exited after this
> System.out.println(""+p.exitValue());
> ...
> the last line throws an exception saying the process has not exit yet.
> The environment is Eclipse, Java 1.5, Junit
> But I didn't find such behavior with calling sqlplus this way. Any
> idea what make this EXP utility not working with java runtime?
> Thx