Oracle 游标疑问
procedure1:
CREATE OR REPLACE PROCEDURE UPDATE_AC02_AAE140_WYL(PI_AAB001 IN NUMBER,
PO_FHZ OUT VARCHAR2,
PO_MSG OUT VARCHAR2) IS
V_AAZ159 NUMBER(20);
--说明:以养老参保的情况为标准(即ac02为准),添加aae140 = 410,510的险种
--20150919 wyl BEGIN
--1 清空 备份表1
DELETE FROM AC02_WYL;
--2 往备份表1里 插入 ac02中险种为110的数据
INSERT INTO AC02_WYL
SELECT *
FROM AC02
WHERE AAB001 = PI_AAB001
AND AAE140 = '';
--3 以备份表1养老 为 参照,往备份表2中插如110数据,是用来生成 510 险种的
INSERT INTO AC02_WYL_2
SELECT * FROM AC02_WYL WHERE AAE140 = '';
--4 以备份表2 中的 110为参照,更新为 510险种
UPDATE AC02_WYL_2
SET AAE140 = '', AAE201 = 0, CAC014 = 201509
WHERE AAB001 = PI_AAB001
AND AAE140 = '';
--5 以备份表1的养老 为 参照,往备份表2中插如110数据,是用来生成 410 险种的 同步骤3
INSERT INTO AC02_WYL_2
SELECT * FROM AC02_WYL WHERE AAE140 = '';
--6 以备份表2 中的 110为参照,更新为 410险种 同步骤4
UPDATE AC02_WYL_2
SET AAE140 = '', AAE201 = 0, CAC014 = 201509
WHERE AAB001 = PI_AAB001
AND AAE140 = '';
--7循环 ,主要是修改 aaz159,
--调用 procedure UPDATE_AC02_AAE140_WYL_xh
UPDATE_AC02_AAE140_WYL_XH(pi_aab001);
END;
UPDATE_AC02_AAE140_WYL_XH:
CREATE OR REPLACE PROCEDURE UPDATE_AC02_AAE140_WYL_XH(PI_AAB001 VARCHAR2) IS
V_AAZ159 NUMBER(20);
CURSOR C_AC02_WYL IS
SELECT * FROM AC02_WYL_2 WHERE AAB001 = PI_AAB001;
BEGIN
FOR V_C_AC02_WYL IN C_AC02_WYL LOOP
SELECT SEQ_BXGX_AAZ159.NEXTVAL INTO V_AAZ159 FROM DUAL;
UPDATE AC02_WYL_2 SET AAZ159 = V_AAZ159;
END LOOP;
END;
最后导入到ac02_wyl_2的数据的aaz159竟然都是同一个值。应该是loop的时候的某个步骤弄错了。
第二个过程改后就没问题了,改后的如下:
CREATE OR REPLACE PROCEDURE UPDATE_AC02_AAE140_WYL_XH(PI_AAB001 VARCHAR2) IS
V_AAZ159 NUMBER(20);
CURSOR C_AC02_WYL IS
SELECT * FROM AC02_WYL_2 WHERE AAB001 = PI_AAB001;
BEGIN
FOR V_C_AC02_WYL IN C_AC02_WYL LOOP
SELECT SEQ_BXGX_AAZ159.NEXTVAL INTO V_AAZ159 FROM DUAL;
UPDATE AC02_WYL_2
SET AAZ159 = V_AAZ159
WHERE AAZ159 = V_C_AC02_WYL.AAZ159
AND AAB001 = PI_AAB001;
END LOOP;
END;
之前错误的数据导致aaz159都是用一个号,
ac02_wyl_2的具体数据如下图:
附ac02的建表sql:
create table AC02
(
aaz159 NUMBER(20) not null,
bae001 VARCHAR2(14) not null,
aab001 NUMBER(20),
aac001 NUMBER(20) not null,
aae140 VARCHAR2(6) not null,
aac013 VARCHAR2(6),
cac013 VARCHAR2(6),
aaa095 VARCHAR2(6) not null,
aac008 VARCHAR2(6) not null,
aac049 NUMBER(6) not null,
cac014 NUMBER(8),
aae201 NUMBER(4) not null,
aaz099 NUMBER(20),
aac048 NUMBER(6)
)
Oracle 游标疑问的更多相关文章
- Oracle 游标示例,带异常处理
Oracle游标示例一则,带异常处理. DECLARE CURSOR c_dl IS SELECT ID, NSRSBH, WSPZXH, ZXYY_DM, HZRQ, SWJG_DM, GXSJ F ...
- Oracle游标带参数
Oracle游标是可以带参数的,而SqlServer的游标就不可以了 create or replace procedure a as cursor b(c_id int)is select * fr ...
- Oracle 游标使用(转)
这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 ; ; dbms_output.put_line(sql) loop dbms_output.put_line( ; ; ; r_te ...
- Oracle 游标使用全解(转)
转自:http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html 这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- ...
- Oracle游标动态赋值
1. oracle游标动态赋值的小例子 -- 实现1:动态给游标赋值 -- 实现2:游标用表的rowtype声明,但数据却只配置表一行的某些字段时,遍历游标时需fetch into到精确字段 CREA ...
- dapper支持oracle游标
dapper支持oracle游标 Dapper是一个轻型的ORM类.它有啥优点.缺点相信很多朋友都知道了,园里也有很多朋友都有相关介绍,这里就不多废话. 如果玩过Oracle都知道,存储过程基本都是通 ...
- Oracle游标的使用示例
此文是使用Oracle游标的几种方式,for...in会自动打开游标,fetch...into需要手动打开游标,游标类似于一个只会往前移动的指针,每次指向数据集中的一行数据,通过游标可以打开数据集,也 ...
- Oracle游标介绍
Oracle游标使用详解: 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标.要在程序中使用游标,必须 ...
- Oracle游标使用
Oracle游标介绍: --声明游标 CURSOR cursor_name IS select_statement --For 循环游标 --()定义游标 --()定义游标变量 --()使用for循环 ...
随机推荐
- js函数变量
局部 JavaScript 变量 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它.(该变量的作用域是局部的). 您可以在不同的函数中使用名称相同的局部 ...
- codeforces 622F. The Sum of the k-th Powers 拉格朗日插值法
题目链接 求sigma(i : 1 to n)i^k. 为了做这个题这两天真是补了不少数论, 之前连乘法逆元都不知道... 关于拉格朗日插值法, 我是看的这里http://www.guokr.com/ ...
- poj 2653 计算几何
#include <iostream> #include <cstring> #include <algorithm> #include <cmath> ...
- 安装VMware vSphere 的目的就是在一台物理服务器上安装很多很多的虚拟机
版权声明:本文为博主原创文章,未经博主允许不得转载. 我们安装VMware vSphere 的目的就是在一台物理服务器上安装很多很多的虚拟机,我们可以通过VMware vSphere Client直接 ...
- (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开
原文 (C#)Windows Shell 编程系列2 - 解释,从“桌面”开始展开 (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一篇:(C#)Windows Shell 编 ...
- 在OSX狮子(Lion)上安装MYSQL(Install MySQL on Mac OSX)
这篇文章简述了在Mac OSX狮子(Lion)上安装MySQL Community Server最新版本v10.6.7的过程. MySQL是最流行的开源数据库管理系统.首先,从MySQL的下载页面上下 ...
- zookeeper集群搭建设置
zookeeper 官网:http://zookeeper.apache.org/ 现在最新版本是 3.4.6 ,但是这个版本我没有运行起来,可能是那配置出现问题了,现在我用的是3.4.5 http: ...
- Php 使用 fsockopen发送http请求
<?php function HTTP_Post($URL,$data, $referrer="") { // parsing the given URL $URL_Info ...
- perl5 第十三章 Perl的面向对象编程
第十三章 Perl的面向对象编程 by flamephoenix 一.模块简介二.Perl中的类三.创建类四.构造函数 实例变量 五.方法六.方法的输出七.方法的调用八.重载九.析构函数十.继承十一. ...
- linux 查看文件系统类型
1. mount [op@TIM ~]$ mount/dev/mapper/vg_tim-lv_root on / type ext4 (rw)proc on /proc type proc (rw) ...