问题标签 [rodbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1102 浏览

mysql - 来自 R 的 MySQL odbc 超时

我正在使用 R 使用 RODBC 包从 MySQL 数据库中读取一些数据。然后处理数据并将一些结果发送回数据库。问题是服务器在大约一分钟后由于不活动而关闭连接,这是在本地处理数据所需的时间。它是一个共享服务器,因此主机不会增加超时时间。

我认为有两种可能解决这个问题 1)在每个数据库事务之前打开一个连接并在之后立即关闭它 2)每 30 秒左右向服务器发送一些小的“ping”命令,让服务器知道我在还在那里。

我可以很容易地实现第一个,但是不断打开和关闭连接似乎很慢。有人知道第二个有效的命令吗?还是完全有更好的方法?

0 投票
4 回答
10167 浏览

r - 使用 RODBC 从 Revolution R 查询 Oracle DB

使用 64 位 ODBC 驱动程序通过 DSN 连接到 Oracle 的 winxp64 位上的 Revolution R 64 位中的 RODBC 错误

我可以连接,但在查询内容时出现错误,以下内容也有效

但是如果我事先不知道 rowsize(max=1) 怎么办

谢谢,阿伦

0 投票
4 回答
3861 浏览

sql - R中的动态“字符串”

简单的问题,但找不到答案。

代替:

我想要一段更动态的代码。就像是:

但这是不正确的。

0 投票
2 回答
9577 浏览

r - 在 Ubuntu 上未找到 RODBC 包中的 odbcConnectExcel 函数

在 Ubuntu 上安装 RODBC 包有点麻烦。首先,我学会了安装以下内容:

这还不够好,因为包仍在寻找头文件。我通过以下方式解决了这个问题:

很好,RODBC 已正确安装在 Ubuntu 机器上。但是当我尝试运行以下脚本时:

我收到一个错误,提示找不到函数 odbcConnectExcel。我检查了每个字母的大小写,确保它不是一个简单的错字。没有。然后我在 Windows R 安装上运行了相同的脚本(当然,文件路径不同)并且脚本有效。

知道为什么 Ubuntu R 安装找不到 odbcConnectExcel 函数以及如何让它工作吗?

0 投票
2 回答
2947 浏览

r - RODBC 功能和错误/警告

关于此 R 代码的问题:

在这两种情况下(警告和错误部分几乎完全相同),代码对于错误(通过省略代码中所需的参数强制)都可以正常工作:我得到一个 NA 值和一个错误消息。

同样对于 sqlQuery 的错误(给出无效的 DSN):NA 值和错误消息。

但不适用于 sqlQuery 的警告。没有消息输出,但df包含消息(所以没有 NA)。为什么?

0 投票
2 回答
6427 浏览

r - 为什么 WHERE 语句在 RODBC 的 sqlQuery 中不起作用?

我们将所有实验室数据保存在 Sybase 数据库中。当我想做数据操作和分析时,我使用 RODBC 将数据读入 R。

到目前为止一切顺利,除了 CGS.Specimen 是我们整个实验室所有的表格。有近 40000 个样本(行),有 66 个变量。阅读需要花费不必要的时间,尤其是当我只对一项拥有大约 1000 个标本的研究感兴趣时。解决它的明显方法是

但是当我跑步时,我得到了

[1] "42S22 -143 [Sybase][ODBC Driver][Adaptive Server Anywhere]Column not found: Column 'RP' not found" "[RODBC] ERROR: Could not SQLExecDirect 'SELECT * from CGS.Specimen WHERE StudyCode=\ "RP\"'"

我玩过引号,也玩过转义斜线,但可惜我一无所获。

例如

错误:“indivs <-sqlQuery(channellab,'SELECT * from CGS.Specimen WHERE StudyCode='RP”中出现意外符号

.Call(C_RODBCFetchRows, attr(channel, "handle_ptr"), max, buffsize, 中的错误:不允许负长度向量

你有什么建议?

0 投票
1 回答
1238 浏览

sql-server-2005 - RODBC sqlSave() stopping insert query when PK violated

I have developed an online survey that stores my data in a Microsoft SQL 2005 database. I have written a set of outlier checks on my data in R. The general workflow for these scripts is:

  1. Read data from SQL database with sqlQuery()
  2. Perform outlier analysis
  3. Write offending respondents back to database in separate table using sqlSave()

The table I am writing back to has the structure:

As you can see, I've set the primary key to be modelid and reason. The same respondent may be an outlier for multiple checks, but I do not want to insert the same modelid and reason combo for any respondent.

Since we are still collecting data, I would like to be able to update these scripts on a daily / weekly basis as I develop the models I am estimating on the data. Here is the general form of the sqlSave() command I'm using:

where db is a valid ODBC Connection and db.insert has the form

sqlSave() chokes when it tries to insert a row that violates the primary key constraint and does not continue with the other records for the insert. I would have thought that setting fast = FALSE would have alleviated this problem, but it doesn't.

Any ideas on how to get around this problem? I could always drop the table at the beginning of the first script, but that seems pretty heavy handed and will undoubtedly lead to problems down the road.

0 投票
1 回答
543 浏览

excel - 使用 RODBC 读取 .xls 文件时不使用 colnames

我还有一个令人费解的问题。

我需要使用 RODBC 读取 .xls 文件。基本上我需要一张包含所有单元格的矩阵,然后使用 greps 和 strsplits 等来获取数据。由于每张工作表都包含多个不同顺序的表格,以及一些中间有其他选项的文本字段,我需要一些功能类似于的东西,readLines()然后是 excel 工作表。我相信 RODBC 是最好的方法。

我的代码的核心是以下功能:

然而,无论我尝试了什么,它总是将提到的工作表的第一行作为返回数据框的变量名。不知道如何解决这个问题。根据文档,colnames=FALSE应该防止这种情况。

我想避免xlsReadWrite包裹。编辑:和gdata包。客户端系统上没有 Perl,因此不会安装它。


编辑:

我放弃了,read.xls()xlsReadWrite包裹里走了。除了名称问题外,事实证明 RODBC 不能真正读取带有斜杠等特殊符号的单元格。格式为“dd/mm/yyyy”的日期只是给出了 NA。

查看 sqlFetch、sqlQuery 和 sqlGetResults 的源代码,我意识到问题很可能在驱动程序中。不知何故,工作表的第一行被视为一些列特征,而不是普通单元格。因此,它们不是 colnames,而是等效于 DB 字段名称。这是您无法设置的选项...

0 投票
2 回答
6271 浏览

r - RODBC 查询调优

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

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

使用以下命令

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

但是当我希望它们成为日期时,我“丢失”了被格式化为日期的列。

0 投票
4 回答
32881 浏览

sql - 将 R 变量传递给 RODBC 的 sqlQuery?

有没有办法将 R 中定义的变量传递给 RODBC 包中的 sqlQuery 函数?

具体来说,我需要将这样的变量传递给标量/表值函数、存储过程和/或可能是 SELECT 语句的 WHERE 子句。

例如,让:

然后,

或者...

或者...

显然,这些都不起作用,但我认为有一些东西可以实现这种功能。