带有 in_schema 的 tbl 返回“无效的对象名称”错误

问题描述

连接到 sql 服务器后,可以列出其中的数据库

con = dbConnect(odbc(),Driver   = "ODBC Driver 17 for sql Server",Server   = "xxxxxxxxxxxx",UID = "xxxxxxxxxxxx",PWD = "xxxxxxxxxxxx",Port     = xxxxxxxxxxxx)

在这里你可以找到一个成功的连接。

enter image description here

之后,我只想列出这个 sql 服务器中的数据库

databases = dbGetQuery(con,"SELECT name FROM master..sysdatabases")

enter image description here

由于我对sql不熟悉,看到“con”中有一个已经分配的数据库“DB01CWE5462”,我有点奇怪。该数据库也可以在 dbGetQuery (DB01CWE5462) 的结果中找到。我猜这个数据库自动分配给con的。

但是,我想导出上面看到的黄色突出显示的表格。以下代码之前(一个月前)成功,但现在返回错误

tbl(con,in_schema("DB01WEA84103.dbo","Ad10Min1_Average"))

错误:nanodbc/nanodbc.cpp:1655:42000: [Microsoft][ODBC Driver 17 for sql Server][sql Server]无效的对象名称 'DB01WEA84103.dbo.Ad10Min1_Average'。 [Microsoft][ODBC 驱动程序 17 用于 sql Server][sql Server]无法准备语句。 '选择 * 来自 "DB01WEA84103.dbo"."Ad10Min1_Average" AS "q13" 哪里 (0 = 1)'

经过一番搜索,我找到了一个解决方案,与上述代码之前的成功运行相比,速度相当慢。

dbReadTable(con,'Ad10Min1_Average',schema='DB01WEA84103.dbo')

那么,我错过了什么?对于产生错误的 con 和 in_schema 代码,我应该怎么做才能再次工作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)