Oracle PL/SQL
相关技术整理
  者:
  间:2009-9-23
(不断更新完善中)
目录
oracle游标的使用1    概述    3
2    PL/SQL常用开发技巧    3
2.1    异常处理和日志    3
2.2    使用动态SQL    5
2.3    使用动态CURSOR    7
2.4    Oracle 分析函数的使用    9
2.5    使用PL/SQL开发基于EBS的HTML格式的报表    10
2.6    使用PL/SQL输出XML格式的数据    11
3    注册步骤    16
3.1    注册Executable    17
3.2    注册Concurrent Program    17
3.3    分配Request Group    18

1 概述
PL/SQLOracle专有的SQL扩展语言,应用在Oracle数据库系统。PL/SQL 不是一个独立
的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,SQL语句执行者处理单个的SQL语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL引擎处理时,ORACLE服务器中的SQL语句执行器处理PL/SQL程序块中的SQL语句。PL/SQL具有高性能、易使用、无缝地与SQL结合,以及强壮性等多项优点。
Oracle 数据库11g的新特性下PL/SQL的高效使用:
复合触发器(compound trigger
触发器中的按序执行
LoopCONTINUE的使用
创建无效触发器(Disabled Trigger)
在非DML语句中使用序列(sequence
动态游标和 REF CURSOR 的可交换性
PLSQL_Warning
只读表(read-only table
2 PL/SQL常用开发技巧
2.1 异常处理和日志
由于设计的不足,编码的失误,硬件的错误或者其他的一些原因,程序在运行的过程中会出现一些错误,因此异常处理和日志就变得很重要。通过对一些特定异常的处理,可以提高程序的稳定性和可持续性。
PL/SQL通过EXCEPTION来处理异常,不需要专门为监控异常编写大量的代码。
使用PL/SQL内置的标准Exception
PL/SQL提前定义好了很多内置的Exception供大家使用,在STANDARD程序包中可以查到。下面用到的三个Exception是在编程过程中最经常使用的异常处理。
Begin
Select a,b
Into :variable
            From table
            Where xxxxxx;
        Exception
when no_data_found then -- 获取没有到数据这个错误
fnd_file.put_line(‘No_Data_Found Error!’);
when too_many_rows then -- 获取存在多行记录这个错误
fnd_file.put_line(‘Too_Many_Rows Error!’);
when others then -- 获取前面没有监控的所有其他错误
fnd_file.put_line(‘Other Error!’);
End;
下图中是一些标准的exception以及它们对应的Oracle错误编码和SQLCODE得值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。