5

RODBC パッケージを使用して R から Oracle データベースに接続していますが、テーブルを「ダウンロード」せずに別のデータベースからテーブルをマージすることに成功しませんでした (大きすぎるのでダウンロードしたくありません!)。次のようなものを使用したいと思います:

DBa=odbcConnect(dsn="DatabaseA",uid="uid",pwd="pwd",readOnly="True")
DBb=odbcConnect(dsn="DatabaseB",uid="uid",pwd="pwd",readOnly="True")
sqldf("select a.year, sum(b.var) as sumVar
       from sqlFetch(DBa,'tableA') a
            sqlFetch(DBb,'tableB') b
       where a.ID=b.ID
       group by a.year")

誰かがアイデアを持っていれば、それは本当に役に立ちます!よろしくお願いします。

ライオネル

4

3 に答える 3

1

この質問は、こちらの質問に似ていますsqlQuery(...)答えは、接続 (チャネル) がデータベース固有であるため、RODBC は を使用して 1 つのクエリで 2 つの異なるデータベースにアクセスできないということのようです。だからどちらか

(1) do it using downloads (as in your code), or 
(2) have your DBA put both tables in a single database, or 
(3) use something other than R. 
于 2013-12-03T19:38:23.480 に答える
0

Netezza では、sqlQuery 関数を使用して正常に動作しています。

require("RODBC")

ch <- odbcConnect("NZSQL")

dim.cust.acc1  <- sqlQuery(ch,"Select * from DB1..DIM_ACCOUNT a inner join DB2..BASE_201707 b on a.id_number=b.id_number limit 1000",believeNRows = FALSE)
于 2017-08-30T09:28:18.677 に答える