>데이터 베이스 >MySQL 튜토리얼 >编写Oracle包中的函数应当注意的两点问题

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

WBOY
WBOY원래의
2016-06-07 15:17:58908검색

自己刚开始用PL/SQL来写一点东西,现在还肤浅的很,说这些不是想谦虚,而是想如果有高手看到自己有什么地方写错的,希望给我一点指点。 今天下午找了一下午自己的那个PL/SQL包的错误,最后还是解决了。。。两个小的不能再小的问题,和大家分享一下。 1、在PL

自己刚开始用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中有几种调用函数的方法你就会对这个设置的意义很明了了。。。

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.