Sql server MongoDb ODBC驱动程序->SQL Server链接服务器查询失败
我已经安装了MongoDb 3.4,并尝试使用链接服务器从SQL Server 2019开发版获取其数据 我成功地为BI2.13安装了MongoDb ODBC驱动程序和MongoDb连接器,并将其连接到SQL Server 链接服务器的查询通过openquery可以正常工作,如下所示:Sql server MongoDb ODBC驱动程序->SQL Server链接服务器查询失败,sql-server,mongodb,odbc,Sql Server,Mongodb,Odbc,我已经安装了MongoDb 3.4,并尝试使用链接服务器从SQL Server 2019开发版获取其数据 我成功地为BI2.13安装了MongoDb ODBC驱动程序和MongoDb连接器,并将其连接到SQL Server 链接服务器的查询通过openquery可以正常工作,如下所示: select * from openquery([MONGOtst], 'select active,created_at,city,CAST(total_xp AS integer) from conten
select *
from openquery([MONGOtst], 'select active,created_at,city,CAST(total_xp AS integer) from content.users' )
问题是:
为什么我尝试这个时失败了
select
active, created_at, city, xp, status, last_action_at,
cast(total_xp AS integer)
from MONGOtst.content.users
加上味精:
无效的对象名称“MONGOtst.content.users”
我尝试了不同的方法MONGOtst…用户,MONGOtst..用户,MONGOtst..内容.用户等,但都失败了
上一级的总经验值。查询无法按原样在查询中使用,可能是因为它是BSON.Decimal128 with msg
链接服务器MONGOtst的OLE DB提供程序MSDASQL为列total_xp提供了无效元数据。精度超过了允许的最大值
我没有找到任何选项来限制驱动程序选项中的BSON.Decimal128数字精度,例如VARCHAR:-maxVarcharLength 8000
如果要通过SQLServer查询mongotst,则需要对针对mongotst运行的每个查询使用OPENQUERY。或者,您可以将查询插入临时表,然后只查询临时表
挑选*
进入M
从openquery[MONGOtst],'选择active、created\u at、city、casttotal\u xp AS
十进制,从
内容。用户的
我对MongoDB不太熟悉,但我不相信您可以更改ODBC驱动程序的精度。欢迎有人纠正我的错误,但ODBC驱动程序只是建立连接并投影数据。不在连接之间转换任何数据
我怀疑使用整数作为数据类型是您的问题之一,因为您正在从十进制数据类型转换。Decimal、Numeric或Varchar都适用于您。我更喜欢转换原始查询中的数据类型,而不是子查询,但两者都可以。还要选择最适合您的数据的数据类型
选择CASTtotal_xp作为varchar作为MTotal_xp*
进入M
从openquery[MONGOtst],“选择活动、创建地点、城市、总地点”
内容。用户的
我相信还有其他的方法。上周我在一个类似的问题上遇到了一些问题,这对我很有效
它的工作原理是:从MONGOtst中选择*执行从另一个主题复制的步骤后,用户:
在这里找到了答案。现在我可以使用三点符号查询了。谢谢
转到SQL Server中的“提供程序选项”屏幕,您可以看到该列表
链接服务器上方文件夹中提供程序的数量(假设您
适当的权限。右键单击MSDASQL并转到属性。
在SQL Server中,提供程序选项按钮位于对话框中,其中
您可以创建链接服务器。勾选“零级”复选框
只有“
在更新字段描述“decimal”->“float64”后也可以工作