ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Reference-PL/SQL概览-PL/SQL架构

PLSQL Language Reference-PL/SQL概览-PL/SQL架构

原创 Oracle 作者: luisedalian 时间:2014-03-06 19:07:53 0 删除 编辑

PL/SQL架构

PL/SQL引擎

PL/SQL编译和运行时系统是一个引擎,用于编译和运行PL/SQL单元。引擎可以被安装在数据库中或应用程序开发工具中,例Oracle Forms。

在任何环境中,PL/SQL引擎接受有效的PL/SQL单元作为输入。该引擎运行过程语句,而将SQL语句发送给SQL引擎。


通常,数据库处理PL/SQL单元。当一个应用程序开发工具处理PL/SQL单元时,它把它传递给本地的PL/SQL引擎。如果PL/SQL单元不包含SQL语句,则本地引擎处理整个PL/SQL单元。如果应用程序开发工具可以受益于条件和循环控制,这是非常有用的。例,Oracle Form应用程序通常会使用SQL语句来测试输入域的值并进行简单的计算。通过使用PL/SQL而不是SQL,这些应用可以避免对数据库的调用。

PL/SQL单元和编译参数

PL/SQL单元是:PL/SQL匿名块、函数、库、包、包体、过程、触发器、类型、类型体。

PL/SQL单元受PL/SQL编译参数(是一系列数据库初始化参数)的影响。不同的PL/SQL单元,例如包规范和包体,有不同的编译参数设置。

下表是PL/SQL编译参数的汇总,如果想显示针对特定的PL/SQL单元或所有PL/SQL单元的这些参数的值,可以查看视图ALL_PLSQL_OBJECT_SETTINGS。

plscope_settings

控制编译时集合、交叉引用和PL/SQL源代码数据的存储。

plsql_ccflags

允许对每个PL/SQL单元单独地控制条件编译

plsql_code_type

指定PL/SQL单元的编译模式(INTERPRETED 和NATIVE)

如果plsql_optimize_level < 2:

n  编译器产生解释代码,而不管plsql_code_type的设置;

n  如果指定native,则编译器警告native被忽略。

plsql_optimize_level

指定编译PL/SQL单元的优化等级。等级越高编译器进行越多的优化。

plsql_optimize_level = 1,建议PL/SQL编译器产生和存储为PL/SQL调试器使用的代码。

plsql_warnings

启用和禁止PL/SQL编译器产生的警告信息,并指定哪些警告信息被显示为错误。

nls_length_semantics

允许使用字节长度和字符长度语义创建char和varchar2列。

注意:PLSQL_DEBUG编译参数已经不建议使用了,如果编译PL/SQL单元进行调试,可以设置plsql_optimize_level = 1。

上表中参数的编译时期的值与每个PL/SQL单元的元数据存储在一起,这意味着当你显式地重新编译这些PL/SQL单元时,可以重用这些值。

存储的PL/SQL单元是使用create or replace语句创建的,匿名块不是存储的PL/SQL单元。

为了显式地重新编译存储的PL/SQL单元并重用它的参数值,必须使用带有compile和reuse settings子句的alter语句。

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

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6043828