0

次のコードは、私の PostgreSQL データベースに正常に接続します (または、何らかの形で接続するように見えます) が、クエリを発行しようとすると「関係が存在しません」というエラーが発生したため、テーブルをまったく返さない dbListTables を試しました。dbConnect に渡されたデータベース名は正しく、テーブルは存在します。私が使用しているコードは、最近使用していたものとまったく同じで、正常に機能したと思います。何か案は?

> library(RPostgreSQL)
Loading required package: DBI
> drv <- dbDriver("PostgreSQL")
> con <- dbConnect(drv, dbname="mydb", user="user", password=password)
> dbListTables(con)
character(0)

私はRとDBIの両方に慣れていないので、非常に単純なものが欠けている可能性があると確信しています...どんな助けもいただければ幸いです。

4

2 に答える 2

0

解決済み -- 私は正しかった。私の側では、それは信じられないほど単純な(そして非常に愚かな)ものでした。間違ったサーバーからスクリプトを実行していました。私が実行していたサーバーには、接続しようとしていたデータベースの空のコピーがあるため、すべてが成功し、dbListTables からの空の結果は正しいものでした。サーバーを切り替えると(または単に他のサーバーのホストを指定すると)、すべてが機能しました。

于 2013-03-13T17:09:18.383 に答える
0

1.MySQLへの接続

a) Mysql がシステムにインストールされている場合、そうでない場合はインストールします。

b) RMySQL IN R をダウンロードします。

library(RMySQL)

drv = dbDriver("MySQL 5.0.1")

MySQL のバージョンが正しいことを確認してください。

con = dbConnect(drv,host="localhost",dbname="test",user="root",pass="root")

ローカルホストを使用するか、サーバー、つまりIPアドレスを使用します

必要なデータベース名、ユーザー名、およびパスワードを使用します

album = dbGetQuery(con,statement="select * from table")

必要なクエリを実行する

close(con)

2.データベースを接続する別の方法

a)最初にMySQL、Oracle、SQL Serverなどのデータベースをインストールします

b) データベース用の ODBC コネクタをインストールする

library(Rodbc)

channel <- odbcConnect("test", uid="ripley", pwd="secret")

test は、ユーザーが手動で設定する必要がある odbc コネクタの接続名です

ユーザーは管理者ツールでこれを見つけることができます

res <- sqlFetch(ch, "table name")

テーブルはデータフレームとして取得できます

res<-sqlQuery(channel, paste("select query"))

with condition one テーブルの一部をデータ フレームとして取得できます

sqlSave(channel, dataframe)

データフレームをデータベースに保存します(このような「res <-」は使用しないでください)

ユーザーが使用できるように

sqlCopy() sqlDrop()

sqlTables()

close(channel)

常に接続を閉じる

于 2013-03-17T14:46:56.663 に答える