请高手指点下,用java如何把oracle中的数据导出来,在后台执行的。

解决方案 »

  1.   

    后台执行?这个无非是要调用Runtime.exec("exp ....")
    你需要获得这个子进程的消息输出。相关思路如下:Runtime.exec方法将产生一个本地的进程,并返回一个Process子类的实例,该实例可用于控制进程或取得进程的相关信息.
    由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过
    Process.getOutputStream(),Process.getInputStream(),
    Process.getErrorStream()方法重定向给它的父进程了.用户需要用这些stream来向 子进程输入数据或获取子进程的输出.
    所以正确执行Runtime.exec("ls")的例程如下:
    try
    {
    process = Runtime.getRuntime().exec (command);
    InputStreamReader ir=newInputStreamReader(process.getInputStream());
    LineNumberReader input = new LineNumberReader (ir);
    String line;
    while ((line = input.readLine ()) != null)
    System.out.println(line);
    }
    catch (java.io.IOException e){
    System.err.println ("IOException " + e.getMessage());
    }
      

  2.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
    Runtime r = Runtime.getRuntime();
    Process p = r.exec("exp zch/zch@orcl tables=T file=d:\\1.dmp ");
    p.waitFor();
    if (p.exitValue() == 0) {
    System.out.println("exp is over!");
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }这样???
    不知道你为什么要用java做?能不能说一下??
      

  3.   

    如果仅仅是导出用exec加exp就可以了,如果还需要别的,JDBC吧