标签: rodbc

加载,分离,重新加载异常

我正在附加,分离和重新附加RODBCdata.table.当我按此顺序使用这些包执行此过程时,我收到以下错误:

Error : .onLoad failed in loadNamespace() for 'data.table', details:
  call: address(x)
  error: object 'Caddress' not found
Run Code Online (Sandbox Code Playgroud)

我正在使用这些软件包的最新版本.这是我的初始会话信息:

R version 3.1.0 (2014-04-10)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    
Run Code Online (Sandbox Code Playgroud)

pkgs <- c('RODBC', 'data.table') # Note, c('data.table', 'RODBC') will work
for (pkg in pkgs) library(pkg, character.only=TRUE)
for (pkg in paste0('package:', pkgs)) detach(pkg, unload=TRUE, character.only=TRUE)
for (pkg …
Run Code Online (Sandbox Code Playgroud)

r rodbc data.table

10
推荐指数
1
解决办法
418
查看次数

将R绘图保存到Web服务器

我正在尝试创建一个从MySQL服务器中提取数据的过程(使用RODBC包),对R中的数据执行一些统计例程,然后将生成的图保存回服务器,以便可以在Web浏览器中检索它们通过一点点的PHP和网络魔术.

我的计划是通过使用RODBC包来执行SQL插入语句,将绘图保存在MySQL BLOB字段中.我想我可以直接将数据作为字符串插入.问题是,我如何获取数据字符串,这甚至可以工作吗?我最好的想法是使用savePlot函数来保存临时文件,然后以某种方式将其读回.

有人曾经尝试过这个或者有关于如何处理这个问题的建议吗?

mysql r rodbc

9
推荐指数
1
解决办法
2173
查看次数

RODBC查询调优

我正在尝试使用RODBC将数据从Oracle数据集市提取到R中.我已经能够解决我的一些问题,但我有一个基本问题.

如何保留数据库中的格式?

使用以下命令

uapp <- sqlQuery(ch, SQL, stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)

我的数据按预期检索,但是当它们应该是字符时,某些字段在R中转换为数字和逻辑一次.如果我使用,我可以解决这个问题:

uapp <- sqlQuery(ch, SQL, stringsAsFactors=F, as.is=T)
Run Code Online (Sandbox Code Playgroud)

但我"丢失"列格式化为我希望它们的日期.

r rodbc

9
推荐指数
1
解决办法
5607
查看次数

RODBC:sqlUpdate()无法识别索引列

我的数据库表看起来大致如下:

+-----+-------+--------------------+-----------+----------+
| ID1 | ID2   | FilePath1          | FilePath2 | Status   |
+-----+-------+--------------------+-----------+----------+
| 1   | Test1 | MyFolder\R\Folder1 | NULL      | Open     |
| 2   | Test2 | MyFolder\R\Folder2 | NULL      | Open     |
| 3   | Test3 | MyFolder\R\Folder3 | NULL      | Finished |
| 4   | Test4 | MyFolder\R\Folder4 | NULL      | Finished |
+-----+-------+--------------------+-----------+----------+
Run Code Online (Sandbox Code Playgroud)

第一列(ID1)定义为PK.但是,ID2也是独一无二的.

现在,我希望能够改变FilePath2Status用,使用R sqlUpdate()RODBC包.所以我尝试以下方法:

db.df <- data.frame(ID1=1, ID2='Test1',
                    FilePath2='MyFolder\R\Folder5', Status='Finished',
                    stringsAsFactors=FALSE)

sqlUpdate(myconn, db.df, tablename='mytable', index='ID2', …
Run Code Online (Sandbox Code Playgroud)

sql r rodbc

9
推荐指数
1
解决办法
4350
查看次数

关闭未使用的RODBC句柄

我收到了一条警告信息:

`historicalHourly <- importHistoricalHourly(startDatePast,endDatePast,Markets,location)
[1] "Importing Hourly Data"
[1] "Flag - Moving from importHistoricalHourly to CleaningUpHourly"
[1] "Flag - Moving to importHistoricalDaily from CleaningUpHourly"Warning messages:

1: closing unused RODBC handle 41 
2: closing unused RODBC handle 40 
3: closing unused RODBC handle 36` 
Run Code Online (Sandbox Code Playgroud)

在函数中,一切都检查返回值,print语句.我有一个想法,由于这个功能它肯定是一个警告:

hHourly.df <- retrievelim(PowerCodeID,columns,startDatePast,endDatePast,unitstr="Hours")

正在访问另一个程序中的单独数据库.此函数按小时返回dateTime值的数据帧,并在下一列中返回不同的数值

如果有人能让我知道为什么关闭数据库以及发生了什么,我将不胜感激.

odbc warnings r rodbc cran

9
推荐指数
1
解决办法
1万
查看次数

如何使用R DBI传递data.frame for UPDATE

使用RODBC,有类似的功能sqlUpdate(channel, dat, ...)允许您传递dat = data.frame(...)而不必构建自己的SQL字符串.

但是,使用R的DBI,我看到的dbSendQuery(conn, statement, ...)只是一个字符串的函数,statement并没有机会data.frame直接指定.

那么如何UPDATE使用data.frameDBI?

database r dataframe rodbc r-dbi

9
推荐指数
2
解决办法
3165
查看次数

我可以在R脚本中优雅地包含格式化的SQL字符串吗?

我正在使用一个使用长SQL字符串的R脚本,我希望保持查询相对没有其他标记,以便允许在编辑器和应用程序之间进行复制和粘贴.我还希望能够跨行分割查询以提高可读性.

在RODBC文档中,该paste函数用于从单独的块中构建查询,但我更喜欢不那么笨拙且引号和逗号较少的东西.谢谢你的帮助.

sql r rodbc

8
推荐指数
3
解决办法
5379
查看次数

RODBC sqlSave的问题

我使用RODBC将数据框插入mySql数据库时遇到了一些困难.以下是我正在使用的代码:

data <- data.frame(analysedDataID=c(1,2,3), plateWell=c("a","b","c"), screenPlateOrder=c(1,2,3), wellData=c("A","B","C"))

con <- odbcConnect(DSN, uid="user_id", pwd="some_password")
query <- sqlSave(con, data, tablename = 'wellAnalysedDataTable', rownames=FALSE, append=TRUE)
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此操作时,我收到以下错误消息:

Error in odbcUpdate(channel, query, mydata, coldata[m, ], test = test,  : 
missing columns in 'data'
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试将数据插入的特定表:

+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| analysedDataID   | int(10)     | YES  |     | NULL    |       | 
| plateWell        | varchar(10) | YES  |     | NULL    |       | 
| screenPlateOrder | int(10)     | …
Run Code Online (Sandbox Code Playgroud)

mysql r rodbc

8
推荐指数
2
解决办法
9486
查看次数

RODBC sqlSave表创建问题

我在使用RODBC的sqlSave创建表时遇到了麻烦(或者更准确地说,是将数据写入创建的表).

这与现有的sqlSave问题/答案不同,如

  1. 他们遇到的问题是不同的,我可以创建表,而他们不能和
  2. 我已经无法合并他们的解决方案,例如在运行sqlSave之前关闭和重新打开连接
  3. 错误消息不同,唯一的例外是上述两种方式不同的帖子

我在Windows RDP上使用MS SQL Server 2008和64位R.

我有一个简单的数据框,只有1列满3个,4个或5个数字的整数.

> head(df)
                        colname
1                           564
2                          4336
3                         24810
4                         26206
5                         26433
6                         26553
Run Code Online (Sandbox Code Playgroud)

当我尝试使用sqlSave时,没有数据写入表.此外,一条错误消息使得它听起来像无法创建表,尽管该表确实创建了0行.

根据我发现的建议,我在运行sqlSave之前尝试关闭并重新打开RODBC连接.即使我使用append = TRUE,我也尝试在执行此操作之前删除表,但它不会影响任何内容.

> sqlSave(db3, df, table = "[Jason].[dbo].[df]", append = TRUE, rownames = FALSE)
Error in sqlSave(db3, df, table = "[Jason].[dbo].[df]",  : 
  42S01 2714 [Microsoft][ODBC SQL Server Driver][SQL Server]There is already 
an object named 'df' in the database.
[RODBC] ERROR: Could not SQLExecDirect 'CREATE TABLE [Jason].[dbo].[df]  
("df" int)'
Run Code Online (Sandbox Code Playgroud)

一旦创建了表,我也尝试在表上使用sqlUpdate().如果我在R或SQL Server …

sql sql-server r sql-server-2008 rodbc

8
推荐指数
2
解决办法
2万
查看次数

使用RODBC时返回字符(0)

我试图从SQL数据库直接导入一些数据到R.我已经建立了连接而没有问题,但提取数据有点挑战.我会尝试尽可能清楚地说明这一点,因为我认为由于某些敏感信息我无法使其重现.当我运行以下行时,我得到了我想要的数据:

myconn <- odbcConnect("COMPANYNAME", uid = "support", pwd = "password111?")
sqlQuery(myconn, "SELECT * FROM Metrics")
Run Code Online (Sandbox Code Playgroud)

但是,当我包含一个我想从服务器中提取的特定数据库时,我遇到了一个问题:

sqlQuery(myconn, "USE companyname_clientname SELECT * FROM Metrics")
Run Code Online (Sandbox Code Playgroud)

companyname_clientname是数据库.我得到的不是我想要的数据

character(0)
Run Code Online (Sandbox Code Playgroud)

我知道引入"USE companyname_clientname"是个问题,我只是不知道为什么或如何解决它.如果有任何事情可以让你更容易帮助我告诉我,我会接受.

sql-server r rodbc

7
推荐指数
3
解决办法
2520
查看次数

标签 统计

r ×10

rodbc ×10

sql ×3

mysql ×2

sql-server ×2

cran ×1

data.table ×1

database ×1

dataframe ×1

odbc ×1

r-dbi ×1

sql-server-2008 ×1

warnings ×1