请使用PLSQL删除bigt中的owner='SYS'的数据,每次删除500条,删除掉50000条即可。

构造测试表
请使用PLSQL删除bigt中的owner='SYS'的数据,每次删除500条,删除掉50000条即可。
技术要求:
1、游标
2、循环结构
3、批量forall处理
---在命令窗口执行
exec create_table('t1');--默认创建10万的数据量
---SQL窗口 begin  create_table('t1'); end ;
select count(*) from t1 where owner='SYS';46876
declare
    cursor t1_tab_cur is
        select object_id from t1 where owner = 'SYS';
    type t1_tab_type is table of t1.object_id%type;
    t1_tab t1_tab_type;
begin
    open t1_tab_cur;
    loop
        fetch t1_tab_cur bulk collect
            into t1_tab limit 5000;
        forall i in 1 .. t1_tab.count
            delete from t1 where object_id = t1_tab(i);
        commit;
        exit when t1_tab.count < 5000;
    end loop;
    close t1_tab_cur;
end;
---------但是花了329秒,不知道什么原因导致这么慢,按理说是应该很快出来的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值