Oracle创建包
发布时间:2021-03-16 13:14:04 所属栏目:站长百科 来源:网络整理
导读:包: ? 在公司中,如果业务逻辑比较复杂,需要定义很多过程或者函数。有可能需要定义几十个过程或者函数,这些过程或者函数如果都放到一起,是不是不好管理?我们一般使用包来管理过程或者函数,一个包中可以定义多个函数或者过程。 ? 一个包包括包和包体。
包: ? 在公司中,如果业务逻辑比较复杂,需要定义很多过程或者函数。有可能需要定义几十个过程或者函数,这些过程或者函数如果都放到一起,是不是不好管理?我们一般使用包来管理过程或者函数,一个包中可以定义多个函数或者过程。? 一个包包括包和包体。需要同时定义包和包体,这种写法又类似于java中的接口和接口的实现。包相当于接口,包体相当于接口的 实现类。 创建包的语法: create [or replace] package 包名 is? --声明常量 -- 声明函数或者过程 ,但是不能有实现 end; 创建包体的语法: create [or replace] package body 包名 is --包的实现 end; 举例:定义包,计算圆的面积 创建包:-- 定义包 计算圆的面积 create or replace package pac_area is -- 定义pi常量 v_pi constant number(5,2):=3.14; --定义计算圆的面积的过程,打印圆的面积 procedure pro_area(v_r number); --定义一个获取圆的面积的函数 function fun_area return number; end; 创建包体: -- 定义包体,用来实现包 create or replace package body pac_area is --把面积参数定义成包体的成员变量,这样函数也可以使用这个变量 v_area number(5,2); -- 实现过程 procedure pro_area(v_r number) is begin v_area:=v_pi*v_r*v_r; dbms_output.put_line(‘圆的面积是:‘||v_area); end; --实现函数,注意,调用该函数前,一定要先调用过程 function fun_area return number is begin return v_area; end; end;调用包中的过程或者函数,在函数或者过程前加上包名就可以了: --使用匿名块调用包中的过程和函数 declare v_area number(5,2); begin -- 调用打印圆的面积的过程 pac_area.pro_area(2); -- 调用获取圆的面积的函数 v_area :=pac_area.fun_area(); dbms_output.put_line(‘函数计算的圆的面积是:‘||v_area); end;管理 :过程 、函数、 包 如何删除过程、 函数、包 drop procedure 过程名; drop function 函数名; drop package 包名; 查询oracle中定义的包 函数 过程从user_source表查找。 select * from user_source where type=‘PACKAGE BODY‘ AND name=‘PAC_AREA‘; (编辑:上饶站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |