功能:将某个入库批次中号码数量等于40的札拆分成两札
declare row1 number;
cursor cr1 is
--取得要拆分的札库存记录
select * from sim_card_zha_resource_ where zha_num_ in(
select zha_num_ from (
select zha_num_,count(id_) amount_ from sim_card_detail_
where status_ not in('RESOURCE_STATUS_12','RESOURCE_STATUS_14')
and zha_num_ like '20080328135622_%'
having count(id_)=40
group by zha_num_)
) order by id_ asc;
begin
row1 := 100;
for x in cr1 --对数据集进行遍历处理
loop
row1 := row1 + 1;
[u]dbms_output.put_line[/u](row1);
declare row2 number;
cursor cr2 is
select * from sim_card_detail_ where zha_num_=[u]x.zha_num_[/u] order by id_ asc;
begin
row2 := 0;
for y in cr2
loop
row2 := row2 + 1;
--从第21条记录开始,这些记录将被分配到新的札中。这里需要添加新的札记录。
if(row2 = 21) then
insert into sim_card_zha_resource_(id_,send_org_id_,receive_org_id_,card_type_id_,box_num_,zha_num_,amount_,is134_,input_date_time_,last_active_date_,status_,input_sid_)
values(row1,x.send_org_id_,x.receive_org_id_,x.card_type_id_,x.box_num_,x.zha_num_ || '_2',20,x.is134_,x.input_date_time_,x.last_active_date_,x.status_,x.input_sid_);
update sim_card_zha_resource_ set amount_=20 where id_=x.id_;
end if;
--更新号码的札编号
if(row2 > 20) then
update sim_card_detail_ set zha_num_=x.zha_num_ || '_2' where id_=y.id_;
end if;
end loop;
dbms_output.put_line(x.zha_num_ || '_2');
end;
end loop;
end;
分享到:
相关推荐
详细介绍了 oracle的游标使用 及 实例
Oracle游标分为显示游标和隐式游标。 显示游标(Explicit Cursor):在PL/SQL程序中定义的、用于查询的游标称作显示游标。 隐式游标(Implicit Cursor):是指非PL/SQL程序中定义的、而且是在PL/SQL中使用UPDATE/...
ORACLE技术文档\oracle cursor 游标.docORACLE技术文档\oracle cursor 游标.docORACLE技术文档\oracle cursor 游标.doc
修改后的oracle游标总结,比较的全面 修改后的oracle游标总结,比较的全面 修改后的oracle游标总结,比较的全面
oracle笔记游标的使用,游标的详细代码案例,游标知识点笔记!
ORACLE 游标的相关操作,轻轻松松学会ORACLE cursor
在Oracle 9i及其以后的版本中,还增加了使用BULK COLLECT子句批量绑定数据和使用CURSOR表达式实现嵌套游标的功能。本章将主要介绍如何使用显式游标进行多行数据的查询、游标FOR循环以及游标变量的使用,另外还将介绍...
oracle数据库中的游标cursor在应用中具有极高的实用性。
下面看下Oracle游标的简易用法,具体代码如下所示: create or replace procedure NW_DelYW(iOPERATION_ID number, sUserID varchar2) is sCurDJBH yw_operation_link.djbh%type; cursor table_yw(ywid yw_...
Oracle 在模块中经常会使用游标进行数据相关操作,循环使用颇多。。。
你也在为LatchFree、Librarycache争用那些事头疼吗,快来看看本文作者是怎么解决的。
oracle 游标的用法以及各种注意事项
游标是从表中检索出结果集,从中每次指向一条记录进行交互的机制。 作用 指定结果集中特定行的位置。 基于当前的结果集位置检索一行或连续的几行。 在结果集的当前位置修改行中的数据。 对其他用户所做的数据...
oracle数据库忽然连不上了,一查是游标数量超了。 1.查看游标数 show parameter open_cursors 2.修改游标数 alter system set open_cursors = 10000; 3.获取打开的游标数 select o.sid, osuser, machine, count...
在开发过程中可能会声明一个含有某张表不具备字段的游标,来解决特殊问题,本文将详细介绍这类问题,需要了解更多的朋友可以参考下其中,data.*是一张表,然后把其他表中的字段也加到sal_data的游标中 Sql代码 代码...
CURSOR c_cursor IS SELECT ID,Name FROM Temp_table; BEGIN OPEN c_cursor; LOOP FETCH c_cursor INTO sPara, sPara2; EXIT WHEN c_cursor%NOTFOUND; BEGIN –just do what you want. END; END LOOP; CLOSE c_cu
本文实例讲述了Oracle出现超出打开游标最大数的解决方法。分享给大家供大家参考,具体如下: Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。...
2. 显示游标是用cursor...is命令定义的游标,它可以对查询语句(select)返回的多条记录进行处理;隐式游标是在执行插入 (insert)、删除(delete)、修改(update)和返回单条记录的查询(select)语句时由PL/SQL自动定义的...
第一种情况是返回的游标是某个具体的表或视图的数据,如: SQL-Code: 代码如下: CREATE OR REPLACE PROCEDURE P_TESTA ( PRESULT OUT SYS_REFCURSOR ) AS BEGIN OPEN PRESULT FOR SELECT * FROM USERS; END P_TESTA;...