一种Oracle的批量清理空free块坏的方法

VALIDATE database;

查询坏块列表

select * from V$DATABASE_BLOCK_CORRUPTION;    
select file# from V$DATABASE_BLOCK_CORRUPTION group by file# order by file#;--一共涉及到多个文件,并排序。

 
删除上次检查的临时坏块列表

drop table cb7; 
create table cb7 as select * from V$DATABASE_BLOCK_CORRUPTION;    
select * from cb7;


查询free-block-获取exteand

drop table fblock;
create table fblock as Select d.name,f.BYTES bytes,c.block# block#,c.file# file# from dba_free_space f,cb7 c,v$datafile d  where d.file#=c.file# and file_id=c.file# and c.block# between f.block_id and f.block_id + f.blocks -1;
select * from fblock;


批量创建表

select 'create  table  test.s'||block#||'  (n  number,c varchar2(4000) )nologging  tablespace  test pctfree 99;'  from    fblock;

快速填充free-block

select '
BEGIN
for i in 1..1000000 loop
EXECUTE IMMED
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的Java实现Oracle批量插入的方法示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class OracleBatchInsertExample { public static void main(String[] args) { String url = "jdbc:oracle:thin:@localhost:1521:XE"; // Oracle数据库连接URL String username = "your_username"; // 替换为你的用户名 String password = "your_password"; // 替换为你的密码 try { // 加载Oracle JDBC驱动程序 Class.forName("oracle.jdbc.driver.OracleDriver"); // 建立数据库连接 Connection conn = DriverManager.getConnection(url, username, password); // 创建插入数据的SQL语句 String sql = "INSERT INTO your_table_name (column1, column2) VALUES (?, ?)"; // 创建PreparedStatement对象,并设置批量提交的大小 PreparedStatement pstmt = conn.prepareStatement(sql); conn.setAutoCommit(false); // 关闭自动提交 // 模拟一组数据 String[] data1 = {"value1", "value2"}; String[] data2 = {"value3", "value4"}; // 执行批量插入 for (String[] data : new String[][]{data1, data2}) { for (int i = 0; i < data.length; i++) { pstmt.setString(i + 1, data[i]); } pstmt.addBatch(); // 添加到批量操作 } int[] result = pstmt.executeBatch(); // 执行批量操作 conn.commit(); // 提交事务 conn.setAutoCommit(true); // 恢复自动提交 System.out.println("成功插入了 " + result.length + " 条数据!"); // 关闭连接和资源 pstmt.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 请替换代码中的 `your_username`、`your_password` 和 `your_table_name` 为你自己的数据库用户名、密码和表名。这个示例演示了如何使用批量插入的方式向Oracle数据库中插入多条数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值