包
一个PL/SQL包由如下两部分组成:包头,包体。包头:主要是包的一些定义信息,不包含具体的代码实现部分,PL/SQL程序和其他应用程序的接口,包含子程序、变量、常量、类型、游标和异常的声明。包体:是对包规范中声明的子程序和游标的实现部分,包体的内容对于外部应用程序来说是不可见的,是对包规范的实现。
语法图解
示例
- 包中变量和常量的声明
SET ENVIRONMENT SQLMODE 'ORACLE';
SET SERVEROUTPUT ON;
CREATE PACKAGE pkg_demo1 AS
companyName CONSTANT VARCHAR(100) := 'GBASE';
productName VARCHAR(100);
END;
- 包中过程和函数的用法
CREATE PACKAGE pkg_demo2 AS
PROCEDURE helloWorld;
FUNCTION myPlus(param1 IN INT, param2 IN INT) RETURN INT;
END;
--定义包内过程、函数
CREATE PACKAGE BODY pkg_demo2 AS
PROCEDURE helloWorld AS
BEGIN
DBMS_OUTPUT.PUT_LINE('HelloWorld!');
END;
FUNCTION myPlus (param1 IN INT, param2 IN INT) RETURN INT AS
BEGIN
RETURN param1 + param2;
EXCEPTION
WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('error');
END;
END;