Oracle函数的创建,调用和删除

本教程介绍了如何使用函数的语法,并演示如何在 Oracle/PLSQL 中创建、使用和删除函数。

注:在Oracle中,函数与过程有什么不同? 函数有返回值,而过程没有返回值。

创建函数

就像在其他语言中一样,您可以在Oracle中创建自己的函数

语法

在Oracle中创建函数的语法是:

CREATE [OR REPLACE] FUNCTION function_name
   [ (parameter [,parameter]) ]

   RETURN return_datatype

IS | AS

   [declaration_section]

BEGIN
   executable_section

[EXCEPTION
   exception_section]

END [function_name];

创建过程或函数时,可以定义参数。 有三种类型的参数可以声明:

  • IN - 此类型参数可以由过程或函数引用。 参数的值不能被过程或函数覆盖(类似只读)。
  • OUT - 此类型参数不能由过程或函数引用,但参数的值可以被过程或函数覆盖(类似只写)。
  • IN OUT - 此类型参数可以由过程或函数引用,参数的值可以被过程或函数覆盖(类似读与)。

示例

我们来看一下如何在Oracle中创建一个函数的例子。以下是Oracle函数的简单示例:

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

在上面函数定义完成后,您可以在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函数。

转载于:https://my.oschina.net/u/2263383/blog/882467

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值