oracle过程定义变量,oracle sqr之多个procedure过程变量传递及同名变量定义

这篇博客介绍了在Oracle SQR中如何在不同过程间传递参数和变量,以及在同一代码中使用相同变量名的方法。博主通过示例代码展示了如何在主过程和子过程中定义并使用变量,以及如何根据条件调用不同的过程。同时,代码中包含了处理无数据情况的特定报表头和错误处理机制。
摘要由CSDN通过智能技术生成

昨日测试了根据不同判断条件写入多个lis文件的sqr代码

http://space.itpub.net/9240380/viewspace-713575

今天在此基础上,测试了如下几个功能点:

1,过程之间(指:begin-procedure)传递参数及变量;

2,多个过程变量是否可以命名相同的变量

3,begin-procedure节alter-report指定特有的begin-heading

上述代码如下:

#define addtlsetup

#include 'Rptstub.lib'

#include '{libpath}tkit_batchstartup.inc'

#include '{libpath}tkit_rptheader.inc'

#include '{libpath}tkit_queappl.inc'

#include '{libpath}tkit_vars_opts.inc'

#include '{libpath}tkit_Sqrfunc.inc'

begin-setup

Declare-layout batch-land

rientation=landscape

left-margin=0

top-margin=0

max-lines=60

max-columns=180

end-declare

end-setup

!20111220 newly added 无数据使用报表头

begin-heading 5 name=nodataheading

print 'a列' (1,11)

print 'b列' (1,20)

print '─' (+1,2,84) fill

end-heading

!主过程调用其它子过程

begin-procedure osi-main

begin-select

count(*) &a_1_rowcount

from osibank.zxytestsqr z where z.a=1

end-select

begin-select

count(*) &a_2_rowcount

from osibank.zxytestsqr z where z.a=2

end-select

if &a_1_rowcount>0

do  query_a_1

else

!20111220 newly added 无数据启用指定报表头,且使用另外的lis文件

alter-report  heading=nodataheading

let $out='无数据表头'||'.LIS'

new-report $out

print '查询不到数据' (+1,0) center

!print #b2  (+1,0) center !在主过程调用子过程产生的变量,用于测试,如写为#b2,结果为0.0,试下#_b2如何

end-if

if &a_2_rowcount>0

do  query_a_2(#b2)

print #b2 (+1,20) center

else

!20111220 newly added

end-if

end-procedure

!查询a=1

begin-procedure query_a_1

let $count='变量1' ! 此过程的变量$count

let $out1='查询1'||$count||'.LIS'

new-report $out1

begin-select

position (+1)

a &a1

move &a1 to #a1

print #a1 (,20,10) edit 9

b &b1

move &am

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值