oracle 存储过程循环打开游标数据处理
2017-07-24 14:12:42
SQL内容:
1.一次性检索 100000 条数据。
2. 1000 条提交一次。
3.超过 100000 万条,重新打开游标,重新检索。
pl/sql内容如下:
CREATE OR REPLACE PROCEDURE P_MDF_TEST ( branchno1 in varchar )
AS
cursor cur_inst is select plcno from t1test where
branch in ( select branchcode from t_test start with branchcode =branchno1 connect by prior branchcode = supercode )
and primprdcode in ( '', '')
and ( InsExprtDate <> date '9999-12-31' or InsExprtDate is null );
record cur_inst%rowtype;
i_count int;
iFlag int ;
-- v_end varchar2(30); 时间
BEGIN
dbms_output.put_line('开始执行');
iFlag :=1;
loop
if iFlag = 0 then
exit;
end if;
i_count:=0;
open cur_inst;
if cur_inst%isopen then
loop
fetch cur_inst into record;
if cur_inst%notfound then
iFlag:=0;
exit;
end if ;
update t1test set InsExprtDate =date '9999-12-31' where plcno=record.plcno;
update t2test set InsExprtDate =date '9999-12-31' where plcno=record.plcno;
-- dbms_output.put_line(record.plcno);
i_count := i_count + 1;
if i_count >=1000 then
-- dbms_output.put_line(i_count);
-- select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') into v_end from dual;
-- dbms_output.put_line(v_end);
i_count:=0;
commit;
end if ;
if cur_inst%ROWCOUNT >=100000 then
-- dbms_output.put_line('进来了');
-- dbms_output.put_line(cur_inst%ROWCOUNT);
exit ;
end if ;
end loop;
commit;
close cur_inst;
end if;
end loop;
dbms_output.put_line('执行结束');
END;
新建测试窗口,执行以下内容:
begin
-- Call the procedure
p_mdf_test(branchno1 => '');
end;
oracle 存储过程循环打开游标数据处理的更多相关文章
- Oracle 存储过程调用返回游标的另一个存储过程。
一个扩展存储过程调用另一个存储过程,示例: 被调用存储过程:最后会返回一个游标,游标返回一个值.调用这个存储过程的存储过程同样需要获取它. procedure SearchBill --根据到货单号查 ...
- java调用oracle存储过程返回多条结果集
oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT, ...
- 四、Oracle loop循环、while循环、for循环、if选择和case选择、更改读取数据、游标、触发器、存储过程
数据库的设计(DataBase Design): 针对于用户特定的需求,然后我们创建出来一个最使用而且性能高的数据库! 数据库设计的步骤: 01.需求分析 02.概念结构设计 03.逻辑结构设计 04 ...
- ORACLE存储过程,循环语法和游标
1.定义所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中.在使用时候,用户通过指定已经定义的存储过程名字并给出 ...
- ORACLE 11G在存储过程里面遍历游标, 调用job任务定时运行
ORACLE存储过程里游标遍历.调用job定时运行 1,第一种使用For 循环 for循环是比較简单有用的方法. 首先.它会自己主动open和close游标.攻克了你忘记打开或关闭游标的烦恼. 其次, ...
- oracle存储过程、声明变量、for循环|转|
oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out ty ...
- oracle存储过程、声明变量、for循环(转)
oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out ty ...
- Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器
初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在 笔记 在pl/sql中可以继续使用的sql关键字有:update del ...
- Oracle存储过程,游标使用
Oracle存储过程: 语法: CREATE [OR REPLACE] PROCEDURE procedure_name (arg1 [mode1] datatype1,arg2 [mode2] da ...
随机推荐
- Request的方法和数组
req.getHeader("referer") [取得发送请求页面对应的浏览器地址栏信息,可以使用这种方法实现防盗链等操作] String name=new String(req ...
- mipush ionic3 线上push
<dict> <key>aps-environment</key> <string>production</string> </dic ...
- 初识STL vector
写这个主要是当作笔记来写的,配上自己的理解加上一些测试示例; 上代码: #include<iostream>#include<cstring>#include<vecto ...
- Leetcode: The Maze III(Unsolved Lock Problem)
There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolli ...
- 灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟? 历史进入2019年,放眼望去,今天的整个技术大环境和生态都发生了很大的变化.在己亥猪年春节刚刚过去的早春时节,我们来梳理和展望一下整个 ...
- elasticsearch数据备份与sshfs建立共享文件
1.背景: 最近公司为了适应业务的发展,利用elasticsearch搜索引擎搭建了两个节点.为了防止数据丢失的特殊情况,需要定时做数据备份,而由于elasticsearch为两个节点分别在不同的服务 ...
- 【转】Install Win32 OpenSSH (test release)
Openssh download url:https://github.com/PowerShell/Win32-OpenSSH/releases Install instruction: Insta ...
- 00004-20180324-20180517-fahrenheit_converter--华氏温度到摄氏温度转换计算器
00004-20180324-20180517-fahrenheit_converter--华氏温度到摄氏温度转换计算器 def fahrenheit_converter(C): fahrenheit ...
- 2017-2018-2 20155228 《网络对抗技术》 实验三:MAL_免杀原理与实践
2017-2018-2 20155228 <网络对抗技术> 实验三:MAL_免杀原理与实践 实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasi ...
- IAR Embedded Workbench for ARM 8.22.1 基础使用教程
面向尚未熟悉且初次使用该软件的新手(比如我...) 1.建立新工作区 File-->>New Workspace 2.建立新项目 1) Project-->>Create Ne ...