请问利用java代码怎样导出oracle的数据库??String sql="exp ora/ora@orcl file=d:/"+dateTime+".dmp ";

try {
DbUtil.getConnection().createStatement().executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
我这么写后出现错误:java.sql.SQLException: ORA-00900: invalid SQL statement at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:622)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:111)
at oracle.jdbc.driver.T4CStatement.execute_for_rows(T4CStatement.java:473)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)ORA-00900: invalid SQL statement
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1450)
at com.ycsbasicClass.dao.SystemSetDao.goback(SystemSetDao.java:190)
at com.ycsbasicClass.dao.SystemSetDao.main(SystemSetDao.java:210)

解决方案 »

  1.   

    String filePath = "exp ora/ora@orcl file=d:/"+dateTime+".dmp ";
    Runtime rt = Runtime.getRuntime();
    rt.exec("cmd /c " + filePath);LZ可以尝试用这样的方式导出
      

  2.   

    但这样每次备份后就把前一个给覆盖了,。
    public void goback(){
    SimpleDateFormat datefm=new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");//制定一个日期格式
    String dateTime=datefm.format(new Date());
    String sql="exp ora/ora@orcl file=d:/"+dateTime+".dmp ";
    Runtime rt = Runtime.getRuntime(); 
    rt.exec("cmd /c " + sql); }
      

  3.   

    String filePath = "exp ora/ora@orcl file=d:/"+dateTime+".dmp "+new Date(); 加个时间戳 
      

  4.   

    oracle数据库的还原语句怎么写啊?