Oracle 游标 + PL/SQL块(BEGIN END) 真的很好用...
来源:互联网 发布:布谷鸟软件手机版 编辑:程序博客网 时间:2024/06/07 11:59
最近实习一直在做数据移植,鼓弄了一段时间的Oracle SQL,发现游标和PL/SQL结合那是好用的不得了,真的!
下面是一小段例子和大家分享一下:
DECLARE
CURSOR c1 IS select * from data_ofee_plan_NG order by system_type
FOR UPDATE OF FEE_PLAN_ID,FEE_PLAN;
v_fee_plan_id data_ofee_plan_NG.FEE_PLAN_ID%TYPE := '';
v_fee_plan data_ofee_plan_NG.FEE_PLAN%TYPE := '';
v_tmpNum1 number(2) := 0; --记录主记账资费脚标
v_tmpNum2 number(2) := 0; --记录子记账资费脚标
v_Count number(6) := 0;
v_subMax number(2) := 15; --记录子记账资费的最大组合数
v_curSysType char(2) := ''; --记录当前系统类型
BEGIN
FOR r1 IN c1 LOOP
IF v_Count=0 THEN
v_tmpNum1 := 1;
v_tmpNum2 := 1;
v_curSysType := r1.system_type;
v_fee_plan := r1.system_type||'o'||to_char(v_tmpNum1);
v_fee_plan_id := v_fee_plan||'0'||to_char(v_tmpNum2);
ELSE IF v_curSysType=r1.system_type THEN
v_tmpNum2 := v_tmpNum2 + 1;
IF v_tmpNum2 > v_subMax THEN
v_tmpNum1 := v_tmpNum1 + 1;
v_tmpNum2 := 1;
END IF;
v_fee_plan := r1.system_type||'o'||to_char(v_tmpNum1);
IF v_tmpNum2 < 10 THEN
v_fee_plan_id := v_fee_plan||'0'||to_char(v_tmpNum2);
ELSE
v_fee_plan_id := v_fee_plan||''||to_char(v_tmpNum2);
END IF;
ELSE
v_tmpNum1 := 1;
v_tmpNum2 := 1;
v_curSysType := r1.system_type;
v_fee_plan := r1.system_type||'o'||to_char(v_tmpNum1);
v_fee_plan_id := v_fee_plan||'0'||to_char(v_tmpNum2);
END IF;
END IF;
v_Count := v_Count + 1;
UPDATE data_ofee_plan_NG SET fee_plan=v_fee_plan WHERE CURRENT OF c1;
UPDATE data_ofee_plan_NG SET fee_plan_id=v_fee_plan_id WHERE CURRENT OF c1;
END LOOP;
END;
大家也不妨一起来体验一下真正意义上的数据库编程哦!
- Oracle 游标 + PL/SQL块(BEGIN END) 真的很好用...
- SQL begin end 块作用
- oracle存储过程、函数、PL/SQL块、动态游标
- oracle pl/sql 程序块,游标,生成测试数据
- Oracle PL/SQL游标
- oracle pl sql 游标
- oracle pl/sql 游标
- Oracle pl/sql 游标
- Oracle的PL/SQL编程和游标
- Oracle PL/SQL基础--游标的学习
- Oracle PL/SQL游标的学习
- Oracle PL/SQL游标的学习
- Oracle PL/SQL基础--游标的学习
- Oracle PL/SQL游标的学习
- PL/SQL ORACLE游标的使用方法
- Oracle PL/SQL游标的使用方法
- Oracle pl/sql块
- Oracle PL/SQL块
- OpenStack Nova 扩展API
- 试验性的Numpy教程
- Bootstrap-Modal升级到CSS3后,模态层不完全消失的解决办法
- iPhone 短信欺骗漏洞披露
- Linux下JDK1.6安装步骤详解
- Oracle 游标 + PL/SQL块(BEGIN END) 真的很好用...
- 【UG活动新闻】JIRA与敏捷:李小龙教给我们的敏捷开发之道
- 小结 Coredump 之Segmentation faults(段错误) 以及调试和解决方法
- 将落地文件存入到oracle数据库中的方法 -- sqlldr
- Unix System V共享内存学习笔记(共享内存、信号量)
- 软件工程——软件计划
- Java对象池技术的原理及其实现
- ORA-12541:TNS:无监听程序
- android应用增量升级