SQL错误:(最大)预期数据长度为510,而返回的数据长度为1010
我有一个来自Cloudera Hive ODBC的数据源,该数据源是通过链接服务器连接的MS SQL Server。当我尝试查询其中一张表时,它会引发一个错误,如下所示的“ OLE DB提供商”链接服务器'Cl'返回的数据,该数据与列的预期数据长度不符合“转介”的预期数据长度。(最大)预期数据长度为510,而返回的数据长度为1010。 我试图通过添加oledbreturncharaswchar = 0,尝试使用连接字符串标准,仅使用打开查询不运气,更改了连接字符串条件,我尝试过的一些示例如下:
选择cast(notes1 as varchar(max))
- cast(notes2 as varchar(max))
- cast(notes3 as varchar(max))作为注释 来自OpenQuery(Cl,'Select 左(cast(转介为Varchar(1000),400)作为注释1 ,substring(cast(转介为Varchar(1000),401,800)作为注释2 ,substring(cast(转介为Varchar(1000),801,1200)作为注释3 来自推荐')
声明@my varchar(max) 设置@my ='select *来自[referral]'' 在[cl]
上执行(@my)select *从OpenQuery(cl,'select cast(转介)为nvarchar(4000))作为refreason从转介')
I have a data source from Cloudera Hive ODBC in MS SQL Server connected via a linked server. When I try to query one of the tables it throws an error as follows ' OLE DB provider 'MSDASQL' for linked server 'CL' returned data that does not match the expected data length for column 'referralreason'.The (maximum) expected data length is 510, while the returned data length is 1010.'
I tried to cast it to varchar, changed the connection string criteria by adding OLEDBReturnCharAsWChar=0, tried using only open query no luck, some examples I tried are below:
SELECT CAST(Notes1 AS VARCHAR(MAX))
- CAST(Notes2 AS VARCHAR(MAX))
- CAST(Notes3 AS VARCHAR(MAX)) AS Notes
FROM OPENQUERY(CL, 'SELECT
LEFT(CAST(referralreason AS VARCHAR(1000), 400) AS Notes1
,SUBSTRING(CAST(referralreason AS VARCHAR(1000),401,800) AS Notes2
,SUBSTRING(CAST(referralreason AS VARCHAR(1000),801,1200) AS Notes3
FROM from REFERRAL')
declare @my varchar(max)
set @my = 'select * from [REFERRAL]'
execute (@my) AT [CL]select * from OPENQUERY(CL, 'select CAST(referralreason AS NVARCHAR(4000)) as refreason from REFERRAL')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论