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

Oracle创建包(Package)和包体(Package Body)

yuyong2019-03-04Oracle

简介在oracle数据库中,package包如同java中package中的作用大致类似;可以把一些过程和函数组织到一起,把PL/SQL代码模块化,构建其他人员重用的代码,在oracle中,包里面可以写存储过程,写方法,写sql语句,定义一个结构体等等。包有包头和包体,包头和包体的名称要相同。

环境:

Oracle版本:11.2

创建包

--创建包
CREATE OR REPLACE PACKAGE PKG_PRINT IS
  PROCEDURE PROC_PRINT_SAL_BY_EMPNO(V_EMPNO IN NUMBER);
  PROCEDURE PROC_PRINT_DNAME_BY_DEPTNO(V_DEPTNO IN NUMBER);
END PKG_PRINT;

创建包体

--创建包体
CREATE OR REPLACE PACKAGE BODY PKG_PRINT IS
  PROCEDURE PROC_PRINT_SAL_BY_EMPNO(V_EMPNO IN NUMBER) AS
    V_SAL NUMBER;
  BEGIN
    SELECT A.SAL INTO V_SAL FROM EMP A WHERE A.EMPNO = V_EMPNO;
    DBMS_OUTPUT.PUT_LINE(V_SAL);
  EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK;
  END PROC_PRINT_SAL_BY_EMPNO;
  PROCEDURE PROC_PRINT_DNAME_BY_DEPTNO(V_DEPTNO IN NUMBER) AS
    V_DNAME VARCHAR2(40);
  BEGIN
    SELECT A.DNAME INTO V_DNAME FROM DEPT A WHERE A.DEPTNO = V_DEPTNO;
    DBMS_OUTPUT.PUT_LINE(V_DNAME);
  EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK;
  END PROC_PRINT_DNAME_BY_DEPTNO;
END PKG_PRINT;

调用

--调用包中的过程
BEGIN
  PKG_PRINT.PROC_PRINT_SAL_BY_EMPNO(7521);
END;
BEGIN
  PKG_PRINT.PROC_PRINT_DNAME_BY_DEPTNO(10);
END;


很赞哦! ()

文章排行

本栏推荐

栏目更新