暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
南大通用GBase 8s兼容PLSQL之PACKAGE包.pdf
417
5页
5次
2021-05-21
免费下载
南大通用GBase 8s兼容PL/SQL
PACKAGE
包是一组相关过程、函数、变量、常量、类型、游标和异常等PL/SQL程序设计元素的
组合。包具有面向对象设计的特点,是对这些PL/SQL程序设计元素的封装。包像一个容
或一个命名空间,可以将各种逻辑相关的过程、函数、变量、常量、类型、游标和异常结
合在一起。为开发人员编写大型复杂应用程序提供良好的组织单元。当包被定义好后,应
用程序可以通过包来访问各种不同的功能单元,而不用担心过多零散的子程序导致程序代
码的松散。包具有简化应用设计、提高应用性能、实现信息隐藏、子程序重载等特点。对
包中涉及的过程、函数、变量、常量、类型、游标和异常等PL/SQL程序设计元素如无特
约束说明,其用法和现状保持一致。
南大通用在GBase 8s中兼容ORACLE的包及相关PL/SQL序设计元素。
1 包的创建
一个PL/SQL由如下两部分组成:包头,或称为包的规范:主要是包的一些定义信
息,不包含具体的代码实现部分,也可以说包头是PL/SQL程序和其他应用程序的接口,包
含子程序、变量、常量、类型、游标和异常的声明。包体:是对包规范中声明的子程序和
游标的实现部分,包体的内容对于外部应用程序来说是不可见的,包体就像是一个黑匣子
一样,是对包规范的实现。注意:包头中子程序和游标是需要实现部分的,如果包头中没
有声明子程序或游标,则包体就不是必须的。
2 包的删除
DROP PACKAGE会将包头和包体一并删除,也可以通过DROP PACKAGE BODY关键字只
删除包体,此时包头依然有效。
3 包的引用
包在首次引用时实例化并执行initialize_section部分,包为SESSION,即多SESSION
之间是不同的包实例。
下面我们通过几个例子示范包的常见用法,注意需要将SQLMODE设置为ORACLE,如
果需要输出请设SERVEROUTPUTON
SET ENVIRONMENT SQLMODE 'ORACLE';
SET SERVEROUTPUT ON;
例子1:包中变量和常量的声明
CREATE PACKAGE pkg_demo1 AS
companyName CONSTANT VARCHAR(100) := 'GBASE';
productName VARCHAR(100);
END;
本例子中,只有包头,并不需要包体。注意,常量不能使用变量赋初始值。然后我们
创建一个过程,对包中声明的常量进行引用,包中的变量可以赋值和引用。
CREATE PROCEDURE p_demo1 AS
BEGIN
DBMS_OUTPUT.PUT_LINE(pkg_demo1.companyName);
pkg_demo1.productName := 'GBase 8s';
DBMS_OUTPUT.PUT_LINE(pkg_demo1. productName);
END;
通过如下代码进行过程的调用。
CALL PROCEDURE p_demo1();
可以看到如下结果。
GBASE
GBase 8s
例子2:包中过程和函数的用法
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;
of 5
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜