现在的位置: 首页 > 综合 > 正文

Oracle 10g 函数

2013年11月07日 ⁄ 综合 ⁄ 共 1514字 ⁄ 字号 评论关闭
  1.  函数
  2. create or replace function 函数名(参数)
  3.     return 变量类型 is
  4.         变量
  5. begin
  6.     语句;
  7. end 函数名;
  8. 1 不带参数的函数
  9. --得到系统当前时间 
  10. create or replace function getSystemDate return varchar2 is
  11.   Result varchar2(40);
  12. begin
  13.   select to_char(sysdate,'"北京时间"YYYY"年"MONDD"日"HH24"时"MI"分"SS"秒"') into Result from dual;
  14.   return(Result);
  15. end getSystemDate;  
  16. 测试脚本:
  17. -- Created on 2008-9-7 by ADMINISTRATOR 
  18. declare 
  19.   -- Local variables here
  20.   i integer;
  21.   systemDate date;
  22. begin
  23.   -- Test statements here
  24.   :systemDate := getSystemDate();
  25. end;
  26.     
  27. 2 带参数的函数
  28. --查找指定学号的学生的姓名
  29. create or replace function searchStuInfo(s_stuNo varchar2) 
  30.   return varchar2 is
  31.   name varchar2(10); 
  32. begin
  33.   select stuName  into name  from StuInfo where stuNo=s_stuNo;
  34.   dbms_output.put_line('姓名是'||name);
  35.   return(name);
  36. end searchStuInfo;  
  37. 测试函数脚本
  38. declare 
  39.   stuNo Char(10);
  40.   stuNameResult Char(10);
  41. begin
  42.   :stuNo :='s25301';
  43.   :stuNameResult :=searchStuInfo(:stuNo);
  44. end;
  45. --判断输入的参数是否是偶数
  46. create or replace function numberEven(num_in number) return boolean is
  47.   Result boolean;
  48. begin
  49.   if mod(num_in,2)=0
  50.       then
  51.        Result:=true;
  52.        return Result;
  53.   else
  54.        Result:=false;
  55.        return Result;
  56.   end if;
  57. exception
  58.   when others then 
  59.        Result:=false;
  60.        return Result;
  61.   return false;
  62. end numberEven;
  63. 测试脚本:
  64. --由于测试变量类型不支持boolean,所有必须用sys.diutil.bool_to_int()函数进行转换.
  65. declare 
  66.   num integer;
  67.   result integer;
  68. begin
  69.   :num :=201;
  70.   :result :=sys.diutil.bool_to_int(numberEven(:num));
  71. end;
  72. 3 查询函数元数据
  73. --GETSYSTEMDATE函数名一定要大写
  74. select text from user_source where name='GETSYSTEMDATE';
  75. 4 删除函数
  76. drop function getsystemdate;

抱歉!评论已关闭.