ORACLE SQlデータベースにアクセスするために、ベースSASとRODBCをRで比較する。RODBCを使用して何千もの観測を失う
私はORACLE SQLデータベースにアクセスしようとしています。私はこのコードでSASでこれを実行する場合:
LIBNAME LIBNAME ORACLE SCHEMA=SCHEMA PATH="*****";
PROC SQL ;
CREATE TABLE work.eval_view AS
SELECT *
FROM LIBNAME.VW_EVALUATION
ORDER BY ***** ;
QUIT;
私はこのコードを実行すると、私は私が期待するものです153777回の観測を、得ます。
次に、このコードをRで実行したいと思います。私はRODBCライブラリを使用しています。これは私が走っているコードです:
connect <- odbcConnect(dsn='****', rows_at_time =1, believeNRows=FALSE)
evaluation <- sqlQuery(connect, "SELECT * FROM ****.vw_evaluation")
しかし私は4239の観測結果を得ます。入って来る実際の観測はSASから来た観測と同じですが、観測の大部分が欠落しています。
私がrows_at_time
入力を変更した場合、私は得られる観測量を変更します。 100
は一度に10219個の観測値を取得し、110
個は一度に観測値が少なく、10120個の観測値しか得られません。
誰にもこの問題のトラブルシューティング方法に関する提案はありますか?他のスレッドの人々がrows_at_timeの変更を提案しているようですが、それは私にとってはうまく機能しません。
テーブルの幅はどれくらいですか?非常に大きなテキストフィールドがありますか?これはメモリの割り当てに影響を与える可能性があります。いくつかの列を選択してみてください。 'sqlQuery()'(2つのラッパー)の上で 'odbcQuery()'と 'sqlGetResults()を使うことを検討してください。 * believeNRows *や* max = 0 *のようなargsで遊ぶ。クエリ呼び出しに対して 'sqlTable()'を試してみてください。 [RODBCのドキュメント](https://cran.r-project.org/web/packages/RODBC/RODBC.pdf)の18ページを参照してください。 – Parfait
大きなテキストフィールドが原因でした。ありがとうございました。 – dncrwlye