RODBC提供正确的行数,但产生空查询

时间:2018-12-13 17:31:22

标签: r rodbc

在Windows上使用R-3.5.0和RODBC v.1.3-15。 我正在尝试从远程数据库查询数据。我可以很好地连接,如果我进行查询以对行进行计数,则答案会正确显示。但是,如果我尝试删除count语句select count(*)并实际上通过select *获取数据,则会产生一个空查询(带有一些相当奇怪的标头)。列名中只有两个正确显示,其余为问号和一个数字(如下所示)。我可以使用sql developer来查询数据没问题。

我在下面提供了最简单的代码版本,但是如果我尝试将行数限制在一定范围内或达到某些特定条件等,则会得到相同的结果。对不起,我无法创建可复制的示例,但由于这是远程数据库不知道是什么问题,我不确定该怎么办。

我可以从同一odbc连接中的不同架构中查询其他表,所以我认为并非如此。我尝试过使用believeNRowsrows_at_time和不使用它们。

谢谢您的任何想法。

channel <- odbcConnect("mydb", uid="myuser", pwd="mypass", believeNRows=FALSE,rows_at_time = 1)

myquery <- paste("select count(*) from MYSCHEMA.MYTABLE")

sqlQuery(channel, myquery)
COUNT(*)
1 149712361

myquery <- paste("select * from MYSCHEMA.MYTABLE")
sqlQuery(channel, myquery)
[1] ID        FMC_IN_ID ?         ?.1       ?.2       ?.3       ?.4       ?.5       ?.6       ?.7       ?.8       ?.9       ?.10      ?.11      ?.12      ?.13      ?.14      ?.15     
<0 rows> (or 0-length row.names)

2 个答案:

答案 0 :(得分:0)

我会尝试以下操作:

  • 在查询中添加简单的// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() maven { url "$rootDir/../node_modules/react-native/android" } } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.google.gms:google-services:3.0.0' // new add for FCM // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } subprojects { if (project.name.contains('react-native-image-picker') || project.name.contains('react-native-linear-gradient') || project.name.contains('react-native-twitter-signin') ) { buildscript { repositories { jcenter() maven { url "https://dl.bintray.com/android/android-tools/" } } } } } } allprojects { repositories { mavenLocal() jcenter() mavenCentral() maven { url 'https://maven.google.com/' name 'Google' } maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } maven { url "https://jitpack.io" } } } ext { compileSdkVersion = 26 buildToolsVersion = "27.0.2" minSdkVersion = 16 targetSdkVersion = 26 } ,以查看是否可以获取一些数据
  • limit 100选项添加到believeNRows调用中-根据我的经验,在该级别上是必需的

答案 1 :(得分:0)

如果对其他人有帮助,则问题在于数据库包含Oracle空间字段(MDSYS.SDO_GEOMETRY)。 R不知道该怎么办。我以为它将只是将其转换为字符,但是却感到困惑。通过省略空间字段,查询工作正常。