当前位置: 首页 > news >正文

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 的函数,因为这些函数最为罕见。




版权声明: 原创作品,答应转载,转载时请务必以超链接方式标明文章 原始来由 、作者信息和本声明。不然将追查法例责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/06/1972815.html

相关文章:

  • JS区别IE6、IE7、IE8之间的方法
  • 基础算法10:过滤器(Filter)对指定路径不进行过滤
  • Asp.net用户多次登录问题
  • 如何应对被地下的Oracle口令加密算法(1)
  • Haproxy+Keepalived+Jboss集群实施架构一例
  • Solaris10下载、安设和设置装备摆设(2)
  • 深入浅出多线程系列之六:事件驱动异步模式(EAP,WebClient,BackgroundWorker)
  • 小本领: 一条下令装配 Firefox 3 Beta 3
  • 因子得分
  • 红旗桌面版本最新使用要领和标题解答100例-1
  • nginx 1.8.1安装使用
  • 利用Travis CI 让你的github项目持续构建(Node.js为例)
  • XP组件下看不到IIS
  • 一个绿色版的正则表达式测试工具
  • Git学习笔记(一)
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • co模块的前端实现
  • input的行数自动增减
  • Node 版本管理
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Vue组件定义
  • yii2权限控制rbac之rule详细讲解
  • 基于HAProxy的高性能缓存服务器nuster
  • 记录一下第一次使用npm
  • 数组大概知多少
  • 用mpvue开发微信小程序
  • 【干货分享】dos命令大全
  • python最赚钱的4个方向,你最心动的是哪个?
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​Python 3 新特性:类型注解
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #mysql 8.0 踩坑日记
  • (12)目标检测_SSD基于pytorch搭建代码
  • (c语言)strcpy函数用法
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (强烈推荐)移动端音视频从零到上手(下)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)Unity3DUnity3D在android下调试
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .naturalWidth 和naturalHeight属性,
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .NET中GET与SET的用法
  • @html.ActionLink的几种参数格式
  • @javax.ws.rs Webservice注解
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @Validated和@Valid校验参数区别
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [ABC294Ex] K-Coloring
  • [android] 天气app布局练习