SQL Server 2019上的PolyBase:IBM DB2外部表

问题描述

我需要使DB2 10.5数据库中的数据作为启用polyBase的sql Server 2019实例上的外部表可用,并遇到问题...

在DB2版本11.1中,IBM添加了LIMIT子句(LIMIT) 在DB2 10.5版中,IBM仍在使用FETCH子句(仅FETCH FirsT ROWS)

sql服务器错过了将T-sql TOP子句转换为LIMIT而不是将此数据库所需的FETCH转换的问题。

以前有人遇到过这个问题吗?如果是这样,是否有人可以解决此限制?

解决方法

如果您可以控制Db2服务器(或可以请求对其进行更改),则可以使用Db2 compatibility feature

设置注册表变量DB2_COMPATIBILITY_VECTOR

db2set DB2_COMPATIBILITY_VECTOR=MYS

,然后重新启动实例。它将使Db2识别LIMITOFFSET子句。仅将此位置位应该不会影响Db2服务器的其他行为。