使用dbReadTable in_schema

时间:2018-06-25 02:07:10

标签: r sql-server database rodbc

我正在尝试使用dbReadTable,但是我的表位于数据库内部的架构下。

例如,使用下面的代码,我可以连接:

  db_ANZSCO <- tbl(con, in_schema("BGVIEW" ,"ANZSCO"))

但是当我尝试使用dbReadTable时,出现以下错误;

  dbReadTable(con, "ANZSCO"))  

   Error: <SQL> 'SELECT * FROM "ANZSCO"'
     nanodbc/nanodbc.cpp:1587: 42000: [Microsoft][ODBC SQL Server      Driver][SQL Server]The SELECT permission was denied on the object 'ANZSCO', database 'BurningGlass', schema 'dbo'. 

我了解该表位于一个架构下,但是我不知道如何使用dbReadTable进行访问,我确实尝试查看了文档,但是到目前为止我仍然没有成功。

Tks

1 个答案:

答案 0 :(得分:1)

尝试使用新颖的DBI::Id()函数,该函数接受模式名称和表名称作为单独的参数。

con <- DBI::dbConnect(drv = odbc::odbc(), dsn = "qqqq") # Replace `qqqq`.
a <- DBI::Id(
  schema  = "BGVIEW",
  table   = "ANZSCO"
)
ds <- DBI::dbReadTable(con, a)
DBI::dbDisconnect(con)

如果这不起作用,请在您的问题中粘贴表定义以及创建连接的代码。您已用[rodbc]标记了您的问题,但似乎您正在使用较新且与DBI兼容的odbc软件包。

另请参见