Select 从 SQL 服务器(通过 LinkedServer)到 Sybase table 得到错误 "db.schema.table was reported to have a "DBCOLUMNFLAGS_ISFIXEDLENGTH" of 16

Select to Sybase table from SQL Server (by LinkedServer) getting error "db.schema.table was reported to have a "DBCOLUMNFLAGS_ISFIXEDLENGTH" of 16

Select 从 SQL 服务器(通过 LinkedServer)到 Sybase table 链接服务器 "XXX" 出现错误 "The OLE DB provider "MSDASQL”为列提供的元数据不一致。据报告,对象 "db.schema.table" 的列 "XXXX"(编译时序号 1)的 "DBCOLUMNFLAGS_ISFIXEDLENGTH" 为 16

查询:Select * 来自 [Server].[db].[schema].[table]

终于在网络上搜索了一段时间后找到了答案,当对具有可为 null 的 CHAR 列的 table 进行查询时给出了错误...

所以解决方案是在 Sybase 中创建一个视图,我在其中对特定列进行 ISNULL 验证,然后从 SQL 服务器查询视图而不是 table。

查询:Select * 来自 [Server].[db].[schema].[view]

来源:http://www.dbainfo.net/wp-content/uploads/CR/sdk_17.htm