sql - 名称为 “.”的表

标签 sql r rodbc

我正在尝试使用sqlFetch。当我将表的名称更改为带有下划线而不是句点时,访存效果完美。所以如果我使用命令

sqlFetch(conn, "HelloWorld_40")

它工作正常。不幸的是,我的 friend 们都使用表的真实姓名
sqlFetch(conn, "HelloWorld.40")

但是后来崩溃了,它告诉我
Error in sqlColumns(conn, "HelloWorld.40") : 
'HelloWorld.40': table not found on channel

我正在猜测句号“。”是表的非法名称。但是我不希望我的 friend 更改它,因为会有很多人受到影响。有什么方法可以调用表,还是我必须 secret 进入他们的数据库,在使用它时更改名称,然后再将其更改回一个句点(可能会忘记,有人会读,等等)。 。

谢谢。

最佳答案

解析表名称的sqlFetch是一个问题。不幸的是,它不处理表引号,因此在模式40中搜索表HelloWorld。您需要直接调用sqlQuery(带引号的表名,MS SQL Server的括号):

sqlQuery(dbhandle, "SELECT * FROM [HelloWorld.40]") 

旁注:您应指定要使用的数据库。

关于sql - 名称为 “.”的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956858/

相关文章:

sql - 在 SQL Server 的表中存储带有操作数的运算符

r - R中的加权数字总和

R 和 odbcDriverConnect() 将 R 连接到 teradata

r - 将 R 数据帧插入 SQL (RODBC) - 找不到错误表

r - 关闭未使用的 RODBC 句柄

sql - 如何使用 iconv 将存储为 LATIN1 ( sql ) 的 Cyrillic 转换为真正的 UTF8 Cyrillic?

mysql - 优化包含重复查询作为子查询的 MySQL 查询?

MySQL 模拟行数

r - 在包中使用外部数据

r - 如何在R中生成一些最有特色的颜色?