为什么在使用Oracle异构服务从SQL Server中提取视图时,某些字符串字段只有一个字符?

为什么在使用Oracle异构服务从SQL Server中提取视图时,某些字符串字段只有一个字符?,sql,sql-server,oracle,heterogeneous-services,Sql,Sql Server,Oracle,Heterogeneous Services,我已确认视图在SQL Server上返回正确的数据。但是当通过Oracle拖动原始视图时,一些字符串列对于每条记录只包含1个字符,而其他列则完全填充。 有人知道是什么导致了这个问题吗?有截断字符的字段是NVARCHAR(50)。显然,Oracle没有正确地从SQL Server中提取NVARCHAR。在SQLServer视图中将它们转换为VARCHAR(50)解决了这个问题 当您将某些数据强制转换或转换为char、varchar、nchar或nvarchar而忘记提供长度说明符时,可能会发生这种

我已确认视图在SQL Server上返回正确的数据。但是当通过Oracle拖动原始视图时,一些字符串列对于每条记录只包含1个字符,而其他列则完全填充。
有人知道是什么导致了这个问题吗?

有截断字符的字段是NVARCHAR(50)。显然,Oracle没有正确地从SQL Server中提取NVARCHAR。在SQLServer视图中将它们转换为VARCHAR(50)解决了这个问题

当您将某些数据强制转换或转换为
char
varchar
nchar
nvarchar
而忘记提供长度说明符时,可能会发生这种情况。e、 g.:
cast(999作为字符)
而不是
cast(999作为字符(10))
。您是否能够为您的视图提供代码,或者至少为一个较小的示例视图提供代码,该示例视图也演示了问题?不,很遗憾,我没有访问实际视图的权限。