Java导出Oracle数据库数据

最近项目中要数据备份和数据恢复。利用的数据库是Oracle。如果使用命令行,在命令行中可以直接使用Oracle的exp和imp命令。比如:windows中,点击开始-》运行,输入cmd,打开命令行窗口。导出数据库和数据。输入exp 用户名/密码@标识 file=d:\c.dmp。如果file名中有空格,比如:d:\programe file\d.dmp,那么只有在加上引号即可。导入数据库和数据,imp 用户名/密码@标识 full=y file=d:\c.dmp。有时表存在,在导入时会报错,只有加上ignore=y。了解更多输入exp -help和imp -help。

代码Java:

导出数据

public boolean exp(){

Runtime r = Runtime.getRuntime();

Process p = r.exec("cmd /c start exp aa/123@test file=d:\\t.dmp");

//如果不加这几句,数据没有导出完毕,就返回值。BuferedReader br = new BufferedReader(new InputStreamReaded(p.getInputStream()));

String lines = null;

while((lines=br.readLine())!=null){

   

}

 

p.waitFor();

p.destory();

 

return true;

}

 

 

//导入数据

public boolean exp(){

Runtime r = Runtime.getRuntime();

Process p = r.exec("cmd /c start imp aa/123@test full=y file=d:\\t.dmp");

//如果不加这几句,数据没有导出完毕,就返回值。BuferedReader br = new BufferedReader(new InputStreamReaded(p.getInputStream()));

String lines = null;

while((lines=br.readLine())!=null){

   

}

 

p.waitFor();

p.destory();

 

return true;

}

 

 

 

目前是这样做的,不知道谁还有更好的解决方法。希望能够贴出来分享下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当您需要从Oracle数据库导出表信息并将其保存为Excel文件时,可以使用Java语言和Apache POI库来完成此任务。下面是一个示例程序,可以从Oracle数据库中获取表信息并将其保存为Excel文件。 ```java import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class OracleTableToExcel { public static void main(String[] args) { // 设置数据库连接信息 String url = "jdbc:oracle:thin:@localhost:1521:xe"; String user = "username"; String password = "password"; String sql = "SELECT * FROM USER_TABLES"; // 连接数据库并获取表信息 List<String[]> tables = new ArrayList<String[]>(); Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(url, user, password); stmt = conn.prepareStatement(sql); rs = stmt.executeQuery(); while (rs.next()) { String tableName = rs.getString("TABLE_NAME"); String numColumns = rs.getString("NUM_ROWS"); tables.add(new String[] { tableName, numColumns }); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 将表信息保存为Excel文件 XSSFWorkbook workbook = new XSSFWorkbook(); Row row; Cell cell; int rowNum = 0; int cellNum = 0; for (String[] table : tables) { String tableName = table[0]; String numColumns = table[1]; row = workbook.getSheetAt(0).createRow(rowNum++); cellNum = 0; cell = row.createCell(cellNum++); cell.setCellValue(tableName); cell = row.createCell(cellNum++); cell.setCellValue(numColumns); } try { FileOutputStream outputStream = new FileOutputStream("tables.xlsx"); workbook.write(outputStream); workbook.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 该程序使用JDBC API连接Oracle数据库并执行查询以获取表信息,然后使用Apache POI库创建Excel文件并将表信息写入文件中。您可以根据需要修改代码以适应不同的Oracle数据库导出要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值