文章来自达梦技术社区http://bbs.dameng.com/
DM6(达梦数据库)的一个重要改进就是大幅提升了对Oracle的兼容性,以方便基于Oracle的应用向DM的移植,减轻开发人员的工作量。其中Oracle的包(Package)功能也成为了DM6的一个重要的兼容目标,是DM6所必须具备和兼容的一个重要特性。
本文将简要介绍DM6所实现的Package特性。首先我们将介绍一下包的基本的概念:PL/SQL为了满足程序模块化的需要,除了块(block)和子程序结构外,还引入了包的构造。包(Package)和TYPE、PROCEDURE、FUNCTION等一样都是PL/SQL的对象。不同的是,包(Package)更像是一个STRUCTURE,将逻辑上相关的PL/SQL类型、对象和子程序组合成一个更大的单位。包有两个部分:包定义(specification)和包体(body)。说明部分是为应用程序的接口,它申明类型、常量、例外、游标和可用的子程序。包体定义游标和子程序,实现说明。应用程序仅对包定义中的申明是可见的。
在DM6中,我们从整体结构和语法上实现了与Oracle一致的Package,包括包头与包主体的定义、调用方式、以及内部变量声明方式与作用域和生命周期。我们举例对比一下Oracle和达梦数据库的包功能:
create
or
replace package myPackage_1
is
procedure sayHello(vname varchar2);
end;
在Oracle和达梦数据库中分别上面这段包定义。在oracle 9i上运行如下:




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23392679/viewspace-630360/ ,如需转载,请注明出处,否则将追究法律责任。