Home >Database >Mysql Tutorial >编写Oracle包中的函数应当注意的两点问题

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

WBOY
WBOYOriginal
2016-06-07 15:17:58907browse

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

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn