分类: Oracle
2009-09-07 22:31:03
1.1 在客户端/ 服务器架构中PL/SQL 的应用(3)
5. 如何执行PL/SQL
每次执行匿名PL/SQL 语句块时,代码会发送给位于服务器的PL/SQL 引擎,在此进行编译。命名PL/SQL 语句块只在创建或者被修改时进行编译。编译过程包括语法检查、绑定、伪代码(p-code)生成。
语法检查涉及检查PL/SQL 代码中语法或者编译错误。当所编写的语句没有严格遵循编程语言的语法时,就出现语法错误。诸如错误拼写的保留字、语句后面缺少分号或者使用未声明的变量等,都是语法错误。
程序员纠正语法错误之后,编译器会给程序变量分配存储地址,用于保存Oracle 数据。这个过程称为绑定。当这个程序运行时,能够保证Oracle 引用到这些存储地址。同时,编译器会检查对已存储对象的引用,例如,表名、SELECT 语句中列名或者对命名PL/SQL 语句块的调用。
接着,产生PL/SQL 语句块的伪代码。伪代码是PL/SQL
引擎的指令列表。对于命名语句块,伪代码存储在数据库中,并且下次程序运行时会使用。当编译过程成功完成时,命名PL/SQL
语句块的状态会设置为VALID,也会存储在数据库中。如果编译过程未能成功完成,命名PL/SQL 语句块的状态被设置为INVALID 。