WEB开发网
开发学院数据库Oracle Oracle 10g第2版新特性之SQL和PL/SQL 阅读

Oracle 10g第2版新特性之SQL和PL/SQL

 2006-12-30 12:01:50 来源:WEB开发网   
核心提示: PL/SQL 程序单元经常包含关于公司流程和商业秘密的非常敏感和机密的信息,这使得它们与表相类似,Oracle 10g第2版新特性之SQL和PL/SQL(9),成为受保护的实体组,为防止未经授权而查看源代码的情况,SQL> select text from user_source wher

PL/SQL 程序单元经常包含关于公司流程和商业秘密的非常敏感和机密的信息,这使得它们与表相类似,成为受保护的实体组。为防止未经授权而查看源代码的情况,我们要经常使用 wrap 命令行实用程序,这将使程序变得很混乱。

只有在创建 PL/SQL 脚本后才能调用 wrap;该实用程序将输入的明文打包为一个文件。但是,在某些情况下,您可能希望在 PL/SQL 代码中动态生成包装。在这种情况下,因为还不存在源文件,不能调用 wrap 实用程序。

由于 Oracle 数据库 10g 第 2 版提供了一个供应程序包,您可以使用它创建代码,并进行打包。该程序包补充(而不是替代)了 wrap 实用程序。而后者仍然适合于希望使用命令行来快速打包大量源文件的情况。

例如,假设您希望以打包形式创建简单的过程 p1。

create or replace procedure p1 as
begin
null;
end;

在 PL/SQL 单元中,您可以使用以下命令以打包方式动态地创建这一过程:

begin
dbms_ddl.create_wrapped
('create or replace procedure p1 as begin null; end;')
end;
/

现在您希望确认打包过程。您可以从字典中选择源文本。

SQL> select text from user_source where name = 'P1';
Text
-----------------------------------------------------------------
procedure p1 wrapped
a000000
369
abcd
abcd

……等等……

第一行 procedure p1 wrapped 是确认以打包方式创建过程。如果您利用 DBMS_METADATA.GET_DDL() 函数来获取该过程的 DDL,则仍然会看到源代码已被打包。

上一页  4 5 6 7 8 9 10  下一页

Tags:Oracle 特性 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接