分享

Oracle817与Oracle7.3.4存储过程动态游标的区别

 aaie_ 2011-10-08

Oracle817下存储过程改成Oracle7下,由于Oracle7下不支持OPEN CUR_1 FOR strSql1;--打开bill_tj_out的动态游标的写法,采用CUR_1 := dbms_sql.open_cursor; --打开游标;方式打开游标。

下面的两个存储过程有相同的功能。

Oracle817下的动态游标存储过程如下:

CREATE OR REPLACE PROCEDURE Pro_Remain_Merge_Win
(
p_orgid_win string,--窗口的ID号
p_userid string
)
is
TYPE My_CurType IS REF CURSOR;
CUR_1 My_CurType;--指示CUR_1的类型为My_CurType,而My_CurType是游标类型
CUR_2 My_CurType;--指示CUR_1的类型为My_CurType,而My_CurType是游标类型

strSql1 varchar2(3000);
strSql2 varchar2(3000);
strSql3 varchar2(3000);
t_bill_typeid number;--窗口发售的票据种类的ID号
t_orgid_zhan number;--窗口所在车站的ID号


--下面的为表合并时需要使用的临时变量

t_bill_id_1 number;
t_bill_typeid_1 number;
t_bill_sign_1 varchar2(12);
t_start_no_1 number;
t_end_no_1 number;
t_all_num_1 number;
t_bill_time_1 date;
t_bill_time_1_yyyy number;--bill_time中的年
t_bill_time_1_mm number;--bill_time中的有

--
t_bill_id_2 number;
t_bill_id_2_merge number;--在表bill_tj_out_a表中,找到的可以合并的记录的ID号
t_bill_typeid_2 number;
t_bill_sign_2 varchar2(12);
t_start_no_2 number;
t_end_no_2 number;
t_all_num_2 number;
t_bill_time_2 date;
t_bill_time_2_str varchar2(40);--日期的串格式,在更新时要使用
t_bill_time_2_yyyy number;--bill_time中的年
t_bill_time_2_mm number;--bill_time中的有
BEGIN

t_bill_id_2_merge:=0;--刚开始时的初始值

delete bill_tj_out_a where userid=p_userid;
commit;

 


--返回窗口使用的票据的种类
select nvl(bill_wintobilltype.billtypeid,0) into t_bill_typeid
from bill_org,bill_wintobilltype
where bill_org.org_id=bill_wintobilltype.winid
and bill_org.org_id=p_orgid_win;
--返回车站的ID号
select nvl(bill_org.parent_id,0) into t_orgid_zhan
from bill_org where org_id=p_orgid_win;

--execute dbms_output.enable(999999999999999999999);

strSql1:=''SELECT bill_id,bill_typeid,bill_sign,start_no,end_no, all_num,bill_time FROM bill_tj_out WHERE  userid=''||p_userid
||'' order by bill_sign,start_no,end_no'';

strSql2:=''SELECT bill_id,bill_typeid,bill_sign,start_no,end_no, all_num,bill_time FROM bill_tj_out_a WHERE  userid=''||p_userid
||'' order by bill_sign,start_no'';

delete bill_tj_out_a where userid=p_userid;
commit;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多