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

oracle学习总结-----package

2017-01-18 20:55 351 查看
---package(包),相当于java中的类

--包规范(包头)和包主体

--包头

--create or replace package 包名

--is|as

--可以声明变量,常量,游标,函数,存储过程

--end;

--包主体

--create or replace package body 包名

--is|as

--变量,常量,游标,函数,存储过程的定义

--begin

--包主体内部执行部分

--end;

--注意事项:

--1、包头和包主体必须一致,包内的对象名字必须保持一致,

--2、在包头内声明的对象,必须在包主体内定义

--3、包主体的执行部分在当前会话只执行一次

------------------------------------------------

  

  --先创建包头,然后创建包主体

create or replace package apk

  is

  --声明一个存储过程,输出helloworld

  procedure pro_print;

  

  --声明一个函数,求出两个数的h和与差

  --function fun_airith(num1 in out number,num2 in out number) return number;

  end;

  

  

  

 create or replace package body apk

 is

 

 --定义一个存储过程,输出helloworld

  procedure pro_print

  is

  begin

    dbms_output.put_line('Hello world');

    end;

 --begin--如果没有执行部分,可以没有begin

 end;

 

 

 declare 

 begin

   apk.pro_print;

 end;

 

 

 

 drop package apk;

 drop package body apk;

 

 ------------------------------------------------------------

 

--实例:创建一个包,定义一个游标,实现游标遍历

create or replace package apk_cursor

is

cursor cur return emp%rowtype;--声明游标

end;

create or replace package body apk_cursor

is

 cursor cur return emp%rowtype is select * from emp;--定义游标

begin

  for temp in cur loop

    dbms_output.put_line('ename=' || temp.ename);

    end loop;  

end;

declare 

begin

  for temp in apk_cursor.cur loop

     dbms_output.put_line('ename=' || temp.ename);

    end loop;

  end;

  

  

  

  --封装一个包,用游标查询20号部门的员工,薪资,

  --用存储过程salesame加薪,每个员工加500,用函数删除mgt为空的员工

  

  

  

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