oracle函数编写

定义: CREATE [OR REPLACE] FUNCTION <过程名>[(参数列表)] RETURN 数据类型 IS
         [局部变量声明]
         BEGIN
            可执行语句
          EXCEPTION
            异常处理语句
          END [<过程名>];

变量的类型:in 为默认类型,表示输入; out 表示只输出;in out 表示即输入又输出;


使用:
 
   示例:
创建函数:
create or replace function f_1(n number) return number is
    r emp%rowtype;
BEGIN
     dbms_output.put_line('姓名 薪水');
     select * into r from emp where empno=n;
     dbms_output.put_line(r.ename||' '||r.sal);    --输出结果,需要 set serverout on 才能显示.
     return r.sal;
END;
使用函数:
declare
    n number;
     m number;
begin
    n:=&请输入员工号;
    m:=f_1(n);
    dbms_output.put_line('m的值为 '||m);
end;
 


删除函数:
    
DROP FUNCTION <函数名>;

 

 

第一步:创建函数,并运行

create or replace function printNameAndAge
(
    username in nvarchar2,     -- 用户名  只表示输入 
  age  in out number              -- 年龄  表示即输入又输出; 
)
return varchar2  -- 返回的类型
is
    temp nvarchar2(200);      -- 声明变量
begin
   
    temp := '用户名:'||username||'   年龄:'||age;
     age := age+10;  --改变年龄的值,
    return temp;
end;

 

第二步: 调用函数

 

方式一:
declare
  username nvarchar2(200);
  age number;
  temp nvarchar2(200);
  
begin
  username := 'yun';
  age := 25;
  
  temp := printNameAndAge(username,age); -- 调用函数
  
  dbms_output.put_line('temp=='||temp); -- 打印函数的返回值
  dbms_output.put_line('age=='||age);   -- 打印查看函数调用后的年龄的值 因为age是 in out方式的,在函数中进行了   --改变后,在函数外部使用时候, 是被改变后的值
end;

方式二:
select printNameAndAge('aa',66) from dual;

 

第三步: 删除函数

drop function printNameAndAge;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值