- 函数
- create or replace function 函数名(参数)
- return 变量类型 is
- 变量
- begin
- 语句;
- end 函数名;
- 1 不带参数的函数
- --得到系统当前时间
- create or replace function getSystemDate return varchar2 is
- Result varchar2(40);
- begin
- select to_char(sysdate,'"北京时间"YYYY"年"MONDD"日"HH24"时"MI"分"SS"秒"') into Result from dual;
- return(Result);
- end getSystemDate;
- 测试脚本:
- -- Created on 2008-9-7 by ADMINISTRATOR
- declare
- -- Local variables here
- i integer;
- systemDate date;
- begin
- -- Test statements here
- :systemDate := getSystemDate();
- end;
- 2 带参数的函数
- --查找指定学号的学生的姓名
- create or replace function searchStuInfo(s_stuNo varchar2)
- return varchar2 is
- name varchar2(10);
- begin
- select stuName into name from StuInfo where stuNo=s_stuNo;
- dbms_output.put_line('姓名是'||name);
- return(name);
- end searchStuInfo;
- 测试函数脚本
- declare
- stuNo Char(10);
- stuNameResult Char(10);
- begin
- :stuNo :='s25301';
- :stuNameResult :=searchStuInfo(:stuNo);
- end;
- --判断输入的参数是否是偶数
- create or replace function numberEven(num_in number) return boolean is
- Result boolean;
- begin
- if mod(num_in,2)=0
- then
- Result:=true;
- return Result;
- else
- Result:=false;
- return Result;
- end if;
- exception
- when others then
- Result:=false;
- return Result;
- return false;
- end numberEven;
- 测试脚本:
- --由于测试变量类型不支持boolean,所有必须用sys.diutil.bool_to_int()函数进行转换.
- declare
- num integer;
- result integer;
- begin
- :num :=201;
- :result :=sys.diutil.bool_to_int(numberEven(:num));
- end;
- 3 查询函数元数据
- --GETSYSTEMDATE函数名一定要大写
- select text from user_source where name='GETSYSTEMDATE';
- 4 删除函数
- drop function getsystemdate;
Oracle 10g 函数
最新推荐文章于 2025-04-11 13:54:26 发布