WEB开发网
开发学院数据库DB2 使用 IBM WebSphere Information Integrator 中的... 阅读

使用 IBM WebSphere Information Integrator 中的数据联邦技术(2)

 2008-09-16 16:29:25 来源:WEB开发网   
核心提示: 内部的服务器属性是决定联邦系统与远程数据源各自所支持的功能的不同之处的关键因素,PDA 使用这些内部服务器属性来决定一个操作是否能在远程执行,使用 IBM WebSphere Information Integrator 中的数据联邦技术(2)(4),这些不同之处可分为三类: SQL 语言

内部的服务器属性是决定联邦系统与远程数据源各自所支持的功能的不同之处的关键因素。PDA 使用这些内部服务器属性来决定一个操作是否能在远程执行。这些不同之处可分为三类:

SQL 语言能力

SQL 限制

各种其他的特定于服务器的限制

下面是关于联邦服务器对缺失的远程 SQL 语言能力作出补偿的一些例子:

早期版本的 Oracle 仅支持受限制的 CASE 语句。联邦服务器将这种受限版本映射到 Oracle 中的 DECODE 函数。然而,当您使用更复杂的 CASE 语句时,查询编译器将检测到这一限制,将受支持的功能下推到 Oracle 服务器,并通过在联邦服务器执行来弥补缺失的功能。

有些数据源,例如 DB2 for z/OS 和 OS/390,不允许表达式作为 GROUP BY 子句的一部分。联邦服务器需要在本地执行该操作。

有些关系数据库管理系统(RDBMS),例如 Sybase,不支持在 FROM 子句中使用表表达式。如果编译器不能通过重写语句将这些表表达式合并成封闭的子选择(例如受某些函数的副作用的影响),那么必须在本地执行封闭的子选择语句。

举个补偿 SQL 限制的例子,考虑联邦服务器可能允许使用大于其他远程数据源所允许的长度的字符串。超过远程长度限制的字符串不能嵌入到远程语句中。PDA 决定将这些字符串以主机变量还是参数标记符的形式发送。如果两种形式都不行,那么任何使用大型字符串的表达式都需要在本地计算。类似地,数据源对于最大或最小的数值也可能有限制。如果一个表达式包含超出远程限制的值,那么就不能下推那些表达式。

最后,关于特定于服务器的限制的一个例子是,DB2 Server for VM 和 VSE 数据源不支持在主机变量和参数标记符中使用 NULL。如果远程数据源不能处理主机变量或参数标记符中的 NULL,那么任何需要绑定一个可以为空的值的函数都必须在本地计算。因此,远程表的定义允许列可以为空这一点非常重要。联邦服务器在昵称注册时获取这种信息。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 IBM WebSphere

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