本教程介绍了如何使用函数的语法,并演示如何在 Oracle/PLSQL 中建立、使用和删除函数。html
注:在Oracle中,函数与过程有什么不一样? 函数有返回值,而过程没有返回值。sql
就像在其余语言中同样,您能够在Oracle中建立本身的函数。数据库
语法oracle
在Oracle中建立函数的语法是:app
CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatype IS | AS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [function_name];
建立过程或函数时,能够定义参数。 有三种类型的参数能够声明:函数
示例fetch
咱们来看一下如何在Oracle中建立一个函数的例子。如下是Oracle函数的简单示例:code
CREATE OR REPLACE Function FindCourse ( name_in IN varchar2 ) RETURN number IS cnumber number; cursor c1 is SELECT course_number FROM courses_tbl WHERE course_name = name_in; BEGIN open c1; fetch c1 into cnumber; if c1%notfound then cnumber := 9999; end if; close c1; RETURN cnumber; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM); END;
此函数称为FindCourse
。 它有一个名为name_in
的参数,它返回一个数字。 若是找到基于课程名称(course_name
)的匹配项,该函数将返回课程编号,不然返回99999
。htm
在上面函数定义完成后,您能够在SQL语句中引用这个函数了,以下所示:教程
SELECT course_name, FindCourse(course_name) AS course_id FROM courses WHERE subject = '数学';
在Oracle中建立函数后,您可能会根据须要将其从数据库中删除。
语法
在Oracle中删除函数的语法是:
DROP FUNCTION function_name;
function_name
- 要删除的功能的名称。示例
咱们来看一下如何在Oracle中删除一个函数的例子。
DROP FUNCTION FindCourse;
执行上面代码后将删除FindCourse
函数。