私はUNIX上でRを実行しています.RODBCパッケージを使用してMS SQLサーバーに接続しています。パッケージで結果を返すクエリを実行できますが、SQLクエリのどこかに一時テーブルを使用すると、空の文字列が返されます。 Web上を見た後、RODBCパッケージは、エンドユーザーが標準SQL(MS SQLとは対照的)で書いていると仮定して書かれたものと考えられます。私は例として以下のコードを提供しました。MS SQL Serverに接続するときのRODBC一時テーブルの問題
RJDBCパッケージを使用すると、面白いことに、一時テーブルの問題は存在しません。しかし、RJDBCパッケージは80,000行(10列)でも読み込みが遅く、頻繁に停止するため、オプションでもありません。他の誰かがこの問題にぶつかっていますか?私が考えていない別の解決策がある場合、私はそれらを聞くのが大好きです。
私はこの問題の唯一の人ではないようですが、おそらくこれはR-Bugですか? http://r.789695.n4.nabble.com/RODBC-results-from-stored-procedure-td897462.html
ここおかげ
は、Rの例である:
library(RODBC)
ch <- odbcConnect(insert your server info here)
qry4 <- "create table #tempTable(
Test int
)
insert into #tempTable
select 2
select * from #tempTable
drop table #tempTable
"
df4 <- sqlQuery(ch, qry4)
同様R.で一時テーブルを使用したストアドプロシージャを使用することができました。限り、私のクエリを1つの文字列に入れて、私は行くコマンドで文を分離するか分からない。これはTransact SQLを使用して私の機能ですか? – rlh2
@Bob - SQLのさまざまな味やSQLとのRインターフェースが、なぜそれが異なる動作をするのかを知るための「通常の」インターフェースとは根本的に異なる方法については十分に分かりません。私は上記のすべてのクエリを強調表示し、管理スタジオを介して実行する場合、それは正常に動作しますか? Rで別のクエリを実行して動作させる必要があると仮定すると、それらをすべてリストに変換して 'lapply()'を使うことができます。私はこの方法を反映するために答えを更新します。 – Chase
@Bob BTW一時テーブルを作成して接続を閉じるときに消えるため、 'drop table'は必要ないと思います。 – Marek