首页 > 解决方案 > MongoDb ODBC 驱动程序 -> SQL Server 链接服务器查询失败

问题描述

我安装了 MongoDb 3.4 并尝试从 SQL Server 2019 dev 获取其数据。使用链接服务器的版本。

我设法为 BI 2.13 安装了 MongoDb ODBC 驱动程序和 MongoDB 连接器,并将其连接到 SQL Server。

链接服务器的查询通过 openquery 可以正常工作,如下所示:

select * 
from openquery([MONGOtst],  'select active,created_at,city,CAST(total_xp AS integer) from content.users' )

问题是:

  1. 为什么当我尝试这个时它会失败

    select 
        active, created_at, city, xp, status, last_action_at,
        cast(total_xp AS integer) 
    from MONGOtst.content.users
    

    用味精:

    无效的对象名称“MONGOtst.content.users”

    我尝试了不同的方法MONGOtst...users,等等MONGOtst..usersMONGOtst..content.users但都失败了

  2. total_xp在上一个 查询不能按原样在查询中使用(可能是原样BSON.Decimal128)与 msg

    链接服务器“MONGOtst”的 OLE DB 提供程序“MSDASQL”为列“total_xp”提供了无效的元数据。精度超过了允许的最大值。

    而且我没有找到任何选项来限制BSON.Decimal128驱动程序选项中的数字精度,例如 ex。VARCHAR:-- maxVarcharLength 8000

标签: sql-servermongodbodbc

解决方案


  1. 它有效:select * from MONGOtst...users在执行从另一个主题复制的步骤后:

在这里找到了答案。现在我可以进行三点符号查询了。谢谢

http://www.sparkalyn.com/2008/12/invalid-schema-error/

转到提供程序选项屏幕 在 SQL Server 中,您可以在链接服务器上方的文件夹中看到提供程序列表(假设您具有适当的权限)。右键单击 MSDASQL 并转到属性。在 SQL Server 中,提供程序选项按钮位于创建链接服务器的对话框中。选中“仅零级”复选框</p>

  1. 更新字段描述'十进制'->'float64'后也可以工作

推荐阅读