Oracle/PLSQL: Creating Functions

 
Oracle/PLSQL: Creating Functions

In Oracle, you can create your own functions.
译:在 ORACLE 中,你可以创建你自己的方法。
The syntax for a function is:
CREATE [OR REPLACE] FUNCTION function_name
    [ (parameter [,parameter]) ]
    RETURN return_datatype
IS | AS
    [declaration_section]
BEGIN
    executable_section
[EXCEPTION
    exception_section]
END [function_name];
 
When you create a procedure or function, you may define parameters. There are three types of parameters that can be declared:
1. IN - The parameter can be referenced by the procedure or function. The value of the parameter can not be overwritten by the procedure or function.
2. OUT - The parameter can not be referenced by the procedure or function, but the value of the parameter can be overwritten by the procedure or function.
3. IN OUT - The parameter can be referenced by the procedure or function and the value of the parameter can be overwritten by the procedure or function.
译:在你创建一个过程或者是方法时,可能会定义参数。这里有三种类型的参数可被定义:
1 IN - 该参数可以被过程或者是方法引用。但该参数的值不可以被过程或者是方法重写。
2、  OUT - 该参数不可以被过程或者是方法引用。但该参数的值可以被过程或者是方法重写。
3、  IN OUT - 该参数既可以被过程或者是方法引用。该参数的值也可以被过程或者是方法重写。
The following is a simple example of a function:
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;
This function is called FindCourse. It has one parameter called name_in and it returns a number. The function will return the course number if it finds a match based on course name. Otherwise, it returns a 99999.
译:方法名为 FindCourse ,它有一个名为 name_in 的参数并且结果返回一个数字。如果它找到一个与课程名相同,那么就返回该课程号,否则就返回 99999
You could then reference your new function in an SQL statement as follows:
译:你可以在 SQL 语句这样引用你的新方法:
select course_name, FindCourse(course_name) as course_id
from courses
where subject = 'Mathematics';
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值