数据架构师:DB2 程序员已经出现了
2009-11-16 00:00:00 来源:WEB开发网如果需要 DB2 没有提供的 SQL 函数,那么可以用 CREATE FUNCTION 语句创建函数。 DB2 还支持用 CREATE TYPE 语句创建自己的数据类型(例如,可能希望为加拿大元和澳大利亚元创建数据类型,从而避免采用不同货币的资金计算出现混淆)。
DB2 的所有内置功能(以及通过用户定义函数和数据类型提供的可扩展性)都很不错,但是必须适当地使用它们。
从单语句到复合 SQL
当然,可以在 SELECT 等单独的 SQL 语句中使用 DB2 函数。但是,当使用复合 SQL 时,DB2 编程会更有意思。复合 SQL 语句是一组单独的语句,但是 DB2 把它们当作一个可执行代码单元。使用复合 SQL 的两种方式是触发器和 SQL 存储过程。
当在创建触发器的表上发生指定的数据修改操作(INSERT、UPDATE 或 DELETE)时,触发器可以自动执行一个或多个 SQL 语句。在触发器定义体中可以包含的语句之一是 SIGNAL ;如果数据修改操作会违反业务规则(例如,订单中指定的产品数量超过了库存量),那么可以使用触发器返回一个定制的错误码和相关联的消息文本。
SQL 存储过程(即完全用 SQL 编写的存储过程程序)通过逻辑流控制等把复合 SQL 提高到新的层次。除了 SQL DML 语句(SELECT、INSERT、UPDATE、DELETE、OPEN CURSOR、FETCH 等)之外,还可以在 SQL 过程中使用各种 SQL 控制语句。这些语句包括:
FOR
使用 SELECT 语句构建一个结果集,然后对结果集中的每一行执行一个或多个 SQL 语句。
IF
如果指定的条件成立(例如,如果某个 SQL 变量包含指定的值 —— 是的,可以在 SQL 过程中声明和赋值变量),那么执行 SQL 语句;否则(通过 ELSEIF 语句)在另一个条件成立时执行另一个 SQL 语句;否则,又执行另一个 SQL 语句(最后通过 ELSE 指定 “ fall-through ” 操作)。
更多精彩
赞助商链接