oracle在触发器中调用函数,在触发器的声明部分不能调用函数吗?

在触发器的声明部分不能调用函数吗?

ebs 11.0.3 reports二次开发,

我在AfterPForm中begin前面的声明部分,声明一个游标,

在此游标中调用一个自定义函数zd_pub_get.get_style(bz.SWAP_ITEM_CODE)

编译时报错:

Error 231 at line 41,colunm 36

function 'GET_STYLE'may not be used in SQL

代码如下:

function AfterPForm return boolean is

x_group_id      number;

cursor c1 is

select NVL(a.vendor_name, bz.duty_name) DEPARTMENT,

bz.swap_id,

bz.EXCEPT_CLASS,

bz.SWAP_ITEM_CODE,

msi.description,

bz.SWAP_QTY,

bz.QUALITY_CODE,

bz.SWAP_DISPOSE_CODE,

replace(INSPECTION_PERSON, ',', '') INSPECTION_PERSON,

bz.comments,

transaction_date,

decode(substr(bz.SWAP_ITEM_CODE, 1, 1),

'3',

zd_pub_get.get_style(bz.SWAP_ITEM_CODE),

null) jx_kind

from qa_part_plan_v bz,

po.po_vendors        a,

inv.mtl_system_items msi

where bz.duty_name = a.vendor_name(+)

-- and substr(bz.SWAP_ITEM_CODE, 2, 2) = jx.jx_id(+)

and a.vendor_name is not null

and nvl(a.VENDOR_TYPE_LOOKUP_CODE, 'VENDOR') = 'VENDOR'

and DISPOSE_CODE = '01替代'

--and transaction_date >= :start_date

--and transaction_date < :end_date + 1

and transaction_date >= to_date('&start_date','yymmdd')

and transaction_date < to_date('&end_date','yymmdd') + 1

and bz.SWAP_ITEM_CODE = msi.segment1(+)

and msi.organization_id(+) = 4

ORDER BY DEPARTMENT;

begin

.............

return (TRUE);

end;

难道在触发器的声明部分不能调用函数吗?哪位帮帮忙啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值