Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MongoDb ODBC驱动程序->SQL Server链接服务器查询失败_Sql Server_Mongodb_Odbc - Fatal编程技术网

Sql server MongoDb ODBC驱动程序->SQL Server链接服务器查询失败

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

我已经安装了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 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”后也可以工作