您的位置:首页 > 数据库 > Oracle

Oracle基本操作十三:函数和包

2017-05-15 22:54 405 查看
--函数和包:位于文件夹function中

--函数:和存储过程类似,但是函数有返回值,且其参数只能是in,而不能是out或in out

--举例一.1:创建无参的函数

create or replace function firstFun return varchar2 

is

begin

   return 'HelloWorld';

end firstFun;

--举例一.2:调用

begin

  dbms_output.put_line(firstFun());

end;

--举例二.1:创建有参的函数--根据月薪计算年薪

create or replace function yearSal(v_sal number) return number  

is

begin

   return v_sal*12;

end firstFun;

--举例二.2:调用

declare

  v_sal number;

begin

  select sal into v_sal from scott.emp wher empno='7369';

  dbms_output.put_line(yearSal(v_sal));

end;

--包:包相当于类,变量相当于成员变量,过程、函数相当于方法。位于文件夹package中

--包组成:包头-定义,包体-实现

--举例一.1:创建包头

create or replace fkpackage is 

   i constant number:=100;--定义常量

   v_comm number:=200;--定义变量-每月奖金200

   function yearfun(v_sal number) return number;--定义函数,有返回值 

   procedure mypro;--定义过程,无返回值

end fkpackage;

--举例一.2:创建包体

create or replace package body fkpackage is

   --函数

   function yearfun(v_sal number) return number is

   begin

     return (v_sal,v_comm)*12;

   end;

   --过程

   procedure my pro is 

   begin

     --可以向表中插入数据

   end;

end fkpackage;

--举例一.3:调用包

declare

   v_sal number;

begin

   --其它操作

   dbms_out.put_line(fkpackage.yearfun(v_sal));

   fkpackage.mypro;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: