WEB开发网
开发学院数据库DB2 数据架构师:DB2 程序员已经出现了 阅读

数据架构师:DB2 程序员已经出现了

 2009-11-16 00:00:00 来源:WEB开发网   
核心提示: WHILE评估指定的条件;如果条件成立,那么执行一个或多个 SQL 语句,数据架构师:DB2 程序员已经出现了(4),再次评估此条件,判断它是否仍然成立;如果条件仍然成立,最终,我没有完成此任务 —— 无法用一个 SQL 语句完成,那么再次执行 SQL 语句,重复此过程

WHILE

评估指定的条件;如果条件成立,那么执行一个或多个 SQL 语句。再次评估此条件,判断它是否仍然成立;如果条件仍然成立,那么再次执行 SQL 语句。重复此过程,直到条件不再成立为止。(条件可以引用 WHILE 循环中每次执行 SQL 语句时迭代的计数器变量值,也可以引用表示到达结果集末尾的变量)。

REPEAT

REPEAT 与 WHILE 相似,差异在于在评估指定的条件之前 SQL 语句至少会执行一次。如果条件成立,那么再次执行语句;重复此过程,直到条件不再成立为止。

LOOP

反复执行一个或多个 SQL 语句,直到显式地离开循环(通过 LEAVE 语句)。

ITERATE

返回到带标签的循环的开头。

GOTO

跳转到 SQL 过程中一个带标签的语句。

GET DIAGNOSTICS

获取前面执行的 SQL 语句的相关信息(例如,UPDATE 语句影响的行数)。

还有更多语句。在 SQL 过程中,可以通过声明错误处理函数告诉 DB2 如何处理(DB2 或用户导致的)特定的错误条件或一般性错误条件(范围更大)。对错误的响应可能会退出 SQL 过程,也可以让 DB2 在遇到错误之后继续执行 SQL 过程。另外,可以在 SQL 过程中设置保存点,可以(通过 ROLLBACK 语句)把工作回滚到保存点(而不是回滚到最近的提交点)。

显然,可以用 SQL 过程实现各种各样的功能。还有一种称为递归式 SQL 的特殊 SELECT 语句,能够用它实现的功能更令人吃惊。

您能用 SELECT 实现这个功能吗?

我在 10 多年前做咨询工作时,曾经遇到存储在 DB2 表中的数据是层次化的情况,编写从这种数据生成某种结果集的 SQL 语句是非常困难的。(这种数据的一个例子是部件列表信息,部件由子部件组成,子部件又由其他子部件组成;另一个例子是组织结构信息,组织由部门组成,部门又由子部门组成)。最终,我没有完成此任务 —— 无法用一个 SQL 语句完成。因为当时的 DB2 没有递归式 SQL 功能。

上一页  1 2 3 4 5  下一页

Tags:数据 架构 DB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接