CURRENT_TIMESTAMP()的RODBC错误 - 是否有可接受的关键字列表?

时间:2015-05-22 02:55:30

标签: r rodbc

我通过RODBC提交了一个简单的(我认为)查询:

ch <- odbcConnect(dsn.name, believeNRows=FALSE, rows_at_time=1)
sqlQuery(ch, "CURRENT_TIMESTAMP()")

它引发了以下错误:

[1] "42000? -1 Malformed SQL Statement: Unrecognized keyword: CURRENT_TIMESTAMP\r\nStatement:CURRENT_TIMESTAMP()"
[2] "[RODBC] ERROR: Could not SQLExecDirect 'CURRENT_TIMESTAMP()'" 

我认为CURRENT_TIMESTAMP()是一个常见的SQL命令,并且没想到它会运行。我检查过ODBC连接(RSSBus DynamicsCRM Source x64)是否支持CURRENT_TIMESTAMP()。我的连接没问题,我能够执行其他一些SQL查询。

上面的语法有问题吗?或者是否有RODBC无法识别的关键字列表?

1 个答案:

答案 0 :(得分:0)

在上面的代码中,第一行即

public class Site { private String name; private ThreadGroup tGroup; public Site(String name) { this.name = name; tGroup = new ThreadGroup(name); } public void addThread(Runnable r) { new Thread(tGroup, r); } public void stopThreads() { tGroup.interrupt(); } } Graph<Site, DefaultEdge> graph = new WeightedGraph<Site, DefaultEdge>(); Site shop1 = new Site("Shop1"); Site man1 = new Site("Manufacturer1"); graph.addVertex(shop1); graph.addVertex(man1); graph.addEdge(shop1, man1).setEdgeWeight(5.0); shop1.addThread(new Runnable() { //thread code here }); // ...

创建与ODBC数据源名称(dsn.name)的连接。所以这里ch <- odbcConnect(dsn.name, believeNRows=FALSE, rows_at_time=1)基本上存储了连接实例。第二行:

ch

在连接上执行SQL查询,即sqlQuery(ch, "CURRENT_TIMESTAMP()"),并将结果返回到数据框中。因此,不要使用方法ch而是使用完整查询:

CURRENT_TIMESTAMP()

我希望这会有所帮助。