有没有人有一个连接字符串示例使用RODBC并连接到MS SQL Server 2005或2008.
谢谢.
当我尝试连接R与Access数据库时,我收到一个错误
odbcConnectAccess is only usable with 32-bit Windows
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
library(RODBC)
mdbConnect<-odbcConnectAccess("D:/SampleDB1/sampleDB1.mdb")
Run Code Online (Sandbox Code Playgroud) 我正在使用RODBC连接到我使用商业数据库的ODBC驱动程序创建的DSN(OSI Soft的PI Historian Time Series DB,如果你很好奇的话).
> library(RODBC)
> piconn <- odbcConnect("PIRV", uid = "pidemo")
> sqlStr <- "SELECT tag, time, status, value FROM piinterp WHERE tag = 'PW1.PLANT1.PRODUCTION_RATE' and time > DATE('-4h') and timestep = '+2m'"
Run Code Online (Sandbox Code Playgroud)
现在,如果我查询,我得到零行.
> sqlQuery(piconn, sqlStr)
[1] TAG TIME STATUS VALUE
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)
有了BelieveNRows = FALSE
这些,所有仍然显示零结果,即使它应该返回120行.
> sqlQuery(piconn, sqlStr, believeNRows = FALSE)
> sqlQuery(piconn, sqlStr, believeNRows = FALSE, max = 0)
> sqlQuery(piconn, sqlStr, believeNRows = FALSE, max …
Run Code Online (Sandbox Code Playgroud) 我使用RODBC向SQL-Server发送查询.有时它们需要花费太多时间来运行,所以我需要取消它们.
单击RStudio中的红色"停止"按钮会产生以下错误消息:
R没有响应您的中断处理请求,因此要停止当前操作,您可能需要完全终止R.
终止R将导致您的R会话立即中止.将中断活动计算,并且将丢弃未保存的源文件更改和工作空间对象.
你想现在终止R吗?
如果我单击是,我的会话确实已终止.(注意:使用Rgui而不是RStudio不会让事情变得更好)
然而:
当我使用另一个软件(名为"Query ExPlus")连接到同一个SQL-Server时,我有一个类似的停止按钮,然后单击它会立即中断查询,而不会发生任何崩溃.
当我使用RPostgres包连接到PostgreSQL数据库时,我也可以随时中断查询.
这两点让我觉得应该有办法解决我的问题.我能做什么?
到目前为止,我的解决方法是:
library(RODBC)
library(R.utils)
withTimeout(mydf <- sqlQuery(myconnection, myquery), timeout=120)
Run Code Online (Sandbox Code Playgroud)
注意:我没有权限从数据库端终止查询.
我正在尝试将数据帧上传到SQL Server表,我尝试将其分解为一个简单的SQL查询字符串.
library(RODBC)
con <- odbcDriverConnect("driver=SQL Server; server=database")
df <- data.frame(a=1:10, b=10:1, c=11:20)
values <- paste("(",df$a,",", df$b,",",df$c,")", sep="", collapse=",")
cmd <- paste("insert into MyTable values ", values)
result <- sqlQuery(con, cmd, as.is=TRUE)
Run Code Online (Sandbox Code Playgroud)
..它似乎有效,但不能很好地扩展.有没有更简单的方法?
我一直在尝试安装一些软件包,如RODBC,ROracle或RGtk2 - 用于拨浪鼓.我真的很感激,如果有人可以帮助我解决这个问题,以便我可以在Mac上使用这些应用程序与小牛队和3.1.1 R
我对RODBC和RGtk2都有这种错误:
包'RGtk2'作为源包提供,但不作为二进制警告在install.packages:包'RGtk2'不可用(对于R版本3.1.1)
当我尝试使用type ='source'时,我可以下载或开始下载,但后来我收到这种错误信息......
install.packages中的警告:包'RODBC'的安装具有非零退出状态
有没有办法将R中定义的变量传递给RODBC包中的sqlQuery函数?
具体来说,我需要将这样的变量传递给标量/表值函数,存储过程和/或SELECT语句的WHERE子句.
例如,让:
x <- 1 ## user-defined
Run Code Online (Sandbox Code Playgroud)
然后,
example <- sqlQuery(myDB,"SELECT * FROM dbo.my_table_fn (x)")
Run Code Online (Sandbox Code Playgroud)
要么...
example2 <- sqlQuery(myDB,"SELECT * FROM dbo.some_random_table AS foo WHERE foo.ID = x")
Run Code Online (Sandbox Code Playgroud)
要么...
example3 <- sqlQuery(myDB,"EXEC dbo.my_stored_proc (x)")
Run Code Online (Sandbox Code Playgroud)
显然,这些都不起作用,但我认为有一些能够实现这种功能的东西.
我在unix上运行R,我使用RODBC包连接到MS SQL服务器.我可以执行一个使用包返回结果的查询,但如果我在SQL查询的某处使用临时表,则返回一个空字符串给我.在浏览网页后,我认为问题可能是RODBC软件包是在最终用户使用标准SQL(而不是MS SQL)编写的时候编写的.我提供了以下代码作为示例.
有趣的是,如果我使用RJDBC包,则不存在临时表问题.但是,RJDBC软件包输入甚至80,000行(10列)的速度非常慢,并且会经常停顿,所以这也不是一个选择.有没有其他人遇到这个问题?如果有其他解决方案我没有想到,我很乐意听到它们.
看来我不是唯一有这个问题的人,也许这是一个R-Bug? http://r.789695.n4.nabble.com/RODBC-results-from-stored-procedure-td897462.html
谢谢
这是R的例子:
library(RODBC)
ch <- odbcConnect(insert your server info here)
qry4 <- "create table #tempTable(
Test int
)
insert into #tempTable
select 2
select * from #tempTable
drop table #tempTable
"
df4 <- sqlQuery(ch, qry4)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用
odbcDriverConnect('driver={SQL Server};server=servername\instancename,port;database=testing;username=abc;password=123456')
Run Code Online (Sandbox Code Playgroud)
连接远程数据库服务器(sql server 2008).但是我得到了
[RODBC]错误:状态08001,代码17,消息[Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SQL Server不存在或访问被拒绝.
错误.任何的想法?
我可以用
odbcDriverConnect('driver={SQL Server};server=localhost;database=testing;trusted_connection=true')
Run Code Online (Sandbox Code Playgroud)
连接我的本地数据库服务器(sql server 2008).
我在Red Hat Linux 6服务器上运行R 2.15.2.我的目标是通过RODBC连接到另一台机器上的MS SQL Server数据库.我做了我的研究,并从微软支持网站下载并安装了Linux版本的MS SQL ODBC驱动程序.我从源代码构建了unixODBC版本2.3.0,因为它是windows驱动程序所必需的,并且还没有在RHL repos中(repo版本是2.2.14).
无论如何,经过一些工作,我终于安装并正确配置了驱动程序,并且我可以通过isql
命令成功连接到SQL Server数据库:
$ isql -v test testuser testpass
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
Run Code Online (Sandbox Code Playgroud)
所以我知道我有我odbc.ini
和odbcinst.ini
文件正确设置.
但是,当我尝试从R中访问ODBC连接时,会发生以下情况:
> test <- odbcDriverConnect('DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass')
Warning messages:
1: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data
source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") : …
Run Code Online (Sandbox Code Playgroud)