在通过链接服务器从sql server 2017 Standard查询远程Postgresql服务器时出现错误
这是查询:
SELECT CAST(test AS VARCHAR(MAX)) FROM OpenQuery(xxxx,
'SELECT corpo::TEXT as test From public.notification')
这是错误消息:
Msg 7347, Level 16, State 1, Line 57
OLE DB provider 'MSDASQL' for linked server 'xxx' returned data that does not match expected data length for
column '[MSDASQL].test'. The (maximum) expected data length is 1024, while the returned data length is 7774.
即使不进行转换,错误仍然发生
对于odbc和链接服务器,我遵循了这个方便的guide。
答案 0 :(得分:1)
你可以试试吗?
SELECT *
FROM OPENQUERY(xxxx, '\
SELECT TRIM(corpo) AS test
FROM public.notification;
') AS oq
VARCHAR
数据类型方面存在问题,因此我使用TRIM()
函数对其进行了欺骗。答案 1 :(得分:1)
就我而言,我是通过视图读取数据。显然,基础表中一列的数据大小已更改,但视图仍向链接服务器报告该列的原始较小大小。解决方案是用MSSMS打开视图并再次保存。