博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Unix爱好者家园

卓越源代码  
   sdccf.cublog.cn
关于作者  
姓名:sdccf
职业:chinapost
年龄:36
位置:sd
个性介绍:

我的分类  




DB2 9 应用开发(733 考试)认证指南,第 9 部分: 用户定义的例程(2)

将定制的和复杂的业务逻辑集成到 SQL 语句中

developerWorks



用户定义的函数

什么是用户定义的函数?

用户定义的函数 (UDF) 是由用户定义的在数据库引擎中运行的函数。UDF 将一组经常运行的过程语句或 SQL 语句封装到一个单元中。这样可以使代码易于管理 —— 不必重复地将常见的或复杂的逻辑包括在多个语句中,而是将逻辑单独放入一个函数中。

在 DB2 中,有很多不同类型的函数,也有很多不同编程语言可用来编写这些函数。下面的列表总结了 DB2 中不同的函数类型:

  • SQL 标量 : 使用 SQL 返回单个数据类型值
  • SQL 行 : 使用 SQL 返回一行数据
  • SQL 表 : 使用 SQL 返回一个 SQL 表
  • 外部标量 : 返回单个数据类型;这种函数是使用外部编程语言编写的
  • 外部表 : 返回一个完整的表;这种函数是使用外部编程语言编写的
  • OLE DB 外部表 : 用户定义的 OLE DB 外部表函数注册在数据库中,用于从 OLE DB 提供程序中访问数据
  • 模板 : 基于另一个函数或模板

从这个列表中可以看到,这些函数基本上可以分为两大类型。更常见的类型是 内部SQL 函数,这些函数是使用 DB2 SQL Procedural Language (SQL PL) 的子集编写的。有些函数也可以用外部编程语言,例如 C/C++、 VB.NET 或 Java 语言来编写。这些函数被称为外部 函数。内部函数的代码存储在数据库编目表中,而外部函数则只是对文件系统中一个位置的引用,该位置存储编译好的外部编程语言代码。

SQL 函数与外部函数之间一个重要的不同之处是编译代码的位置不同。SQL 函数既可以远程编译,也可以本地编译,因为这种函数存储在数据库的编目表中。而外部函数则没有这么灵活。必须现在带有适当编译器和编译库的机器上对它进行编译,然后再传输到服务器。有时候,取决于所使用的编程语言,为了使编译后的代码能够运行,编译机器与数据库服务器上的操作系统和底层硬件需要一致。这也是 SQL 函数比外部函数更受欢迎的一个原因,对于必须支持多种操作系统和硬件配置的应用程序,这一点特别明显。

下面的列表总结了可用于编写 UDF 的编程语言:

  • DB2 SQL PL(用于使用一条或多条 SQL 语句编写的函数)
  • C/C++
  • Java 语言
  • .NET CLR 语言,例如 C#
  • OLE

在接下来的两个小节中,您将学习 SQL 函数和外部函数。您还将更深入地学习基于 SQL 的函数,因为这些函数最为常见。

 发表于: 2008-05-31,修改于: 2008-05-31 23:47 已浏览462次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.35673

京ICP证041476号