oracle动态游标的简单实现方法

oracle动态游标的简单实现方法

ID:40565645

大小:20.00 KB

页数:3页

时间:2019-08-04

oracle动态游标的简单实现方法_第1页
oracle动态游标的简单实现方法_第2页
oracle动态游标的简单实现方法_第3页
资源描述:

《oracle动态游标的简单实现方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、oracle动态游标的简单实现方法[转]2008年07月30日星期三08:46--明细表打印予处理通用报表:proceduremx_print_common(pd_idinmx_pd_syn.pd_id%type,p_pd_mxb_idINmx_pd_mxb_syn.p_mxb_id%type,p_dept_noINsc_mxk.dept_code%type,p1sc_bz_syn.bz_code%type,p2sc_cjjc_syn.cjjc_code%type,p3sc_mxk.warehouse_num%type)issql2varchar2(500);--存储查询语句sql3varc

2、har2(500);--存储查询条件str1sc_print_syn.a%type;--存储车间进程str2sc_print_syn.b%type;--存储班组(工艺、工序)进程s_ipsc_print_syn.ip%type;typecursor_typeisrefcursor;c1cursor_type;typerecord_typeisrecord(pbom_idsc_mxk.pbom_id%type);r_c1record_type;/*注意上面红色的两行和蓝色的两行红色的两行定义一个游标蓝色的两行定义一个游标中将要返回的数据的数据结构*/cursorc2(p_pbom_idsc_m

3、xk.pbom_id%type)isselecta.dd_count,b.gx_name,c.bz_name,d.cjjc_namefromsc_p_gx_syna,sc_gx_synb,sc_bz_sync,sc_cjjc_syndwherepbom_id=p_pbom_idanda.gx_code=b.gx_code(+)andb.dept_code=p_dept_noanda.bz_code=c.bz_code(+)andb.dept_code=p_dept_noanda.cjjc_code=d.cjjc_code(+)andb.dept_code=p_dept_no;r_c2c2%r

4、owtype;BEGINs_ip:=sys_context('USERENV','IP_ADDRESS');deletefromsc_print_synwhereip=s_ipandp_id=pd_id;commit;--下面开始构造查询语句sql2:='selectdistincta.pbom_idfromsc_mxka';sql3:='wherea.p_id='

5、

6、pd_id

7、

8、'anda.dept_code='''

9、

10、p_dept_no

11、

12、'''';ifp_pd_mxb_id>0thensql2:=sql3

13、

14、',mxkc';sql3:=sql3

15、

16、'andc.m_mxb_id='

17、

18、

19、p_pd_mxb_id

20、

21、'anda.mxb_id=c.mxb_id';endif;ifp1isnotnullthensql2:=sql2

22、

23、',sc_p_gx_synb';sql3:=sql3

24、

25、'anda.pbom_id=b.pbom_idandb.bz_code='''

26、

27、p1

28、

29、'''';endif;ifp2isnotnullthensql2:=sql2

30、

31、',sc_p_gx_synb';sql3:=sql3

32、

33、'anda.pbom_id=b.pbom_idandb.cjjc_code='''

34、

35、p2

36、

37、'''';endif;ifp3isnotnullthensql3:=sql3

38、

39、

40、'anda.warehouse_num='''

41、

42、p3

43、

44、'''';endif;sql2:=sql2

45、

46、sql3;--打开动态游标,再往下就都一样了openc1forsql2;loopfetchc1intor_c1;exitwhenc1%notfound;str1:='';str2:='';--打开工序表进行处理openc2(r_c1.pbom_id);loopfetchc2intor_c2;exitwhenc2%notfound;--没有记录退出ifr_c2.cjjc_nameisnotnullthenstr1:=str1

47、

48、to_char(r_c2.cjjc_name);endif;if

49、r_c2.bz_nameisnotnullthenstr2:=str2

50、

51、r_c2.bz_name

52、

53、to_char(r_c2.dd_count);elsifr_c2.gx_nameisnotnullthenstr2:=str2

54、

55、to_char(r_c2.gx_name)

56、

57、to_char(r_c2.dd_count);endif;endloop;closec2;insertintosc_print_syn

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。