编写Oracle包中的函数应当注意的两点问题

本文分享了作者在使用PL/SQL过程中遇到的两个常见问题:一是如何正确调用函数并接收返回值;二是确保包头定义与包体实现中函数参数的一致性。这些问题虽然简单,但对于初学者来说容易忽视。

自己刚开始用PL/SQL来写一点东西,现在还肤浅的很,说这些不是想谦虚,而是想如果有高手看到自己有什么地方写错的,希望给我一点指点。

今天下午找了一下午自己的那个PL/SQL包的错误,最后还是解决了。。。两个小的不能再小的问题,和大家分享一下。

1、在PL/SQL中如果是函数,就可以SQL语句中使用,也可以在其他的PL/SQL程序段中使用。但是在程序段中使用的话就一定要注意了,必须要接收函数的返回值。要不然PL/SQL会认为这个函数是一个过程,而返回参数类型不正确的错误。

如:function add_two_num(num1 in number,num2 in number)return number这样的函数,调用的时候即使你不使用这个返回值也要用num3:=add_two_num(num1,num2);的形式,不能使用add_two_num(num1,num2)的形式。呵呵,有时我们会用到out类型的变量,可能会出现这种情况。

2、在包头中定义函数和包体中实现函数时变量的名称一定要一样,否则会提示包头中的某个函数没有定义,如:在包头中定义function add_two_num(num1 in number,num2 in number)return number;在包体中实现时你只实现了function add_two_number(num3 in number,num2 in number);时就会出现错误,这个也不难想到,想一下在PL/SQL中有几种调用函数的方法你就会对这个设置的意义很明了了。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值