Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5143850
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: 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 。

这部分提供有关PL/SQL 的练习和建议答案,以及与答案相关的讨论。要注意,最重要的事情是保证自己的答案能够满足问题目标要求。应该领会这些答案的潜在含义,以及不同答案可能带来的结果。
阅读(860) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~