WEB开发网
开发学院数据库DB2 DB2 9.5 SQL Procedure Developer 认证考试 735 准... 阅读

DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第3部分

 2010-02-18 15:01:14 来源:WEB开发网   
核心提示:OLE DB外部表函数Microsoft OLE DB 是一组应用程序编程接口 (API),用于访问各种数据源,DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第3部分(7),数据源由数据本身、相关联的数据库管理系统 (DBMS)、运行DBMS的平台以及用来访问此平台的网络组成,

OLE DB外部表函数

Microsoft OLE DB 是一组应用程序编程接口 (API),用于访问各种数据源。数据源由数据本身、相关联的数据库管理系统 (DBMS)、运行DBMS的平台以及用来访问此平台的网络组成。OLE DB 可以为OLE Component Object Model (COM) 环境中的所有数据源类型提供访问。

除了 CLI/ODBC提供的功能之外,OLE DB 定义的接口还可以访问无法通过 SQL 访问的数据。OLE DB 通过定义一组标准接口来促进应用程序集成,这些接口包含与语义相关的函数,应用程序可以通过这些函数访问其他应用程序的服务。接口是用于组件-对象交互的二进制标准,每个接口包含一组函数,它们为实现接口的对象(提供者)和使用接口的客户机(消费者)之间的交互定义一个“合同”。有两类 OLE DB提供者:OLE DB数据提供者,它们本身拥有数据并以行集的形式公开表格式的数据;OLE DB 服务提供者,它们本身不拥有数据,而是通过 OLE DB 接口产生和消费数据来封装某些服务。

与外部表函数一样,外部 OLE DB表函数是用高级编程语言编写的。但是,对于 OLE DB表函数,可以使用一个通用的内置 OLE DB 消费者访问任何 OLE DB提供者来访问数据;只需注册一个OLE DB表函数并作为数据源引用适当的OLE DB提供者。不需要编写额外的代码。与外部表函数一样,在联结操作、分组操作、集操作(例如UNION)和能够应用于只读视图的任何其他操作中,都可以使用外部 OLE DB表函数返回的表。例如,可以定义一个OLE DB表函数,它返回来自Microsoft Access数据库或Microsoft Exchange地址簿的表;然后创建一个报告,报告无缝地组合来自这个OLE DB表和DB2数据库的数据。

一定要注意一点:要想对DB2数据库使用OLE DB表函数,必须安装OLE DB 2.0或更高版本,这可以从Microsoft 获得。关于系统需求和特定数据源可用的OLE DB提供者的更多信息,请查阅数据源的文档。

用来注册OLE DB外部表函数的CREATE FUNCTION语句形式的基本语法见清单 8。

清单 8. 用来注册OLE DB外部表函数的CREATE FUNCTION语句

CREATE FUNCTION [FunctionName] ( <<[ParameterName]> [InputDataType] ,...> )
  RETURNS TABLE ( [ColumnName] [ColumnDataType] ,... )
  <SPECIFIC [SpecificName]>
  EXTERNAL <NAME [ExternalName]>
  LANGUAGE OLEDB
  <DETERMINISTIC | NOT DETERMINISTIC>
  <RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT>
  <EXTERNAL ACTION | NO EXTERNAL ACTION>
  <CARDINALITY [NumRows]>

其中:

FunctionName指定要创建的OLE DB外部表函数的名称。

ParameterName指定一个或多个函数参数的名称。

InputDataType指定ParameterName 所识别的参数所需的数据类型。

ColumnName指定函数返回的一列或多列的名称。

ColumnDataType指定ColumnName 所识别的列返回的数据类型。

SpecificName指定分配给这个UDF的特定名称。这个名称可以用来引用或删除函数;但是,不能用来调用函数。

ExternalName 为要注册的函数指定引用的外部表和OLE DB提供者。指定外部表和OLE DB提供者的语法如下:

'[Server]!<Rowset>'

'!<Rowset>![ConnectString] <!COLLATING_SEQUENCE = [N | Y]>'

其中:

Server指定由 CREATE SERVER SQL语句定义的数据源的本地名称。

Rowset指定OLE DB提供者公开的行集(表)。

ConnectString指定一个连接字符串,其中包含通过 OLE DB提供者连接数据源所需的初始化属性。此字符串由一系列关键字=值 对组成,与CLI/ODBC函数SQLDriverConnect()使用的连接字符串相似。

注意:<!COLLATING_SEQUENCE = [N | Y]>子句指定是否使用与DB2相同的比较次序访问数据源。

NumRows指定函数返回的行数的估计值。(此值只用于优化)。

因此,如果希望注册一个名为ORDERS()的OLE DB外部表函数,从一个Microsoft Access数据库获取订单信息,那么可以执行清单 9 所示的CREATE FUNCTION语句:

清单 9. OLE DB外部表函数

CREATE FUNCTION orders()
  RETURNS TABLE (orderid   INTEGER,
          customerid  CHAR(5),
          employeeid  INTEGER,
          orderdate  TIMESTAMP,
          requiredate TIMESTAMP,
          shipdate   TIMESTAMP,
          shipcharges DECIMAL(19,4))
  LANGUAGE OLEDB
  EXTERNAL NAME '!orders!Provider=Microsoft.Jet.OLEDB.3.51;
    Data Source=c:sqllibsamplesoledbnwind.mdb'

上一页  2 3 4 5 6 7 8 9 10 11 12  下一页

Tags:DB SQL Procedure

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