1、编程语言与Oracle数据库
1.1、存储的与匿名的PL/SQL程序块
与存储的PL/SQL程序块相比,匿名的PL/SQL程序块效率较低,此外由于可能在多台机器中公布源代码,还会引发管理问题。
1.2、PL/SQL对象
PL/SQL对象具有下列5种类型:
- 过程
- 函数
- 程序包
- 程序包主体
- 触发器
2、过程、函数以及程序包
2.1、过程与函数
过程(Procedure)是一个执行某些动作的代码块。要运行一个过程,既可以在PL/SQL程序块内部调用这个过程,也可以使用交互式的EXECUTE命令。
函数(Function)与过程的概念相似,但并不具有OUT型实参,并且无法使用EXECUTE命令来调用。函数应当通过RETURN返回一个值。
如果使用的是CREATE命令而不是CREATE OR REPLACE命令,那么在指定对象已存在的情况下必须先删除这个对象。
函数:
|
过程:
|
2.2、程序包
程序包(Package)由规范和主体两个对象组成。
使用CREATE PACKAGE命令可以创建一个程序包规范:
|
使用CREATE PACKAGE BODY创建程序包主体:
|
查看:
|
使用:
|
3、数据库触发器
常见的触发事件:
- INSERT、UPDATE以及DELETE这些DML命令的执行
- CREATE、DROP、ALTER以及TRUNCATE这些DDL命令的执行
- 会话登入与登出
- 数据库的启动与关闭
- 由于空间问题导致的某条语句的挂起
- 检测到服务器错误
只能通过触发事件来运行触发器。
|
4、用于PL/SQL的实例参数
PLSQL_V2_COMPATIBILITY(默认FALSE):为TRUE许可旧版本中合法的异常行为。
PLSQL_DEBUG(默认FALSE):为TRUE会以某种方式编译PL/SQL代码,有助于调试其他信息。
PLSQL_OPTIMIZE_LEVEL(默认为2):最高级别为2,支持使用编译器的所有优化功能,提供最佳运行时性能,但可能增加编译时间。低级别提供更快编译,但稍微影响执行性能。大量编译时,可修改。
PLSQL_WARNING(默认DISABLE:ALL):控制PL/SQL编译器应当显示的消息。
PLSQL_CODE_TYPE(默认INTERPRETED):默认PL/SQL代码只被编译为字节代码,在调用时被解释。如设置为NATIVE,与后面的PLSQL_NATIVE_LIBRARY_DIR参数一起用,PL/SQL代码预编译为C代码,这种方式可以改善性能。
PLSQL_NATIVE_LIBRARY_DIR(默认NULL):指定存储本地PL/SQL编译所生成的动态链接库的操作系统路径。
以上参数多数情况下都适用默认设置。