問題タブ [r-dbi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - クエリが n_max 行未満を返す場合にのみ収集する
Oracle
時折、データベースROracle
に接続するときに、R が処理できるよりも多くのデータを取得dbplyr
する操作を実行します。dplyr::collect
これにより R がクラッシュする可能性があり、フェッチする前にデータをさらにフィルタリングまたは集計する必要があるという兆候であることがよくあります。
結果を取得するかどうかを選択する前に、結果のサイズを確認できると便利です (クエリを 2 回実行する必要はありません)。
これを可能collect2
にするバリエーションに名前を付けましょう:collect
予想される行動:
これは可能でしょうか?
私はROracle
/を使用DBI
せずdplyr
にソリューションを受け入れることもできます。
編集:
以下の回答として投稿された部分的な解決策を参照してください。使用しないデータの取得に時間がかかるため、最適ではありません。
r - sqlAppendTable を正しく使用するには?
短い要約
パッケージを使用して、R data.frame から SQLServer データベースのテーブルにデータを挿入しようとしていDBI
ます。sqlAppendTable に関する情報を読んだ後、この関数が必要な SQL ステートメントの生成に役立つことを期待していました。ただし、この関数は文字変数の前後に文字列を配置しないようで、実行しようとするとエラーが発生します。私はそれを正しく使用していますか?この目的のためにこの関数を使用する必要がありますか? そうでない場合は、別のアプローチをお勧めできますか?
私のコード
データベース テーブル「DBtable」には 3 つの列があり、それぞれの型はvarchar
です。data.frame "myDataFrame" にもcharacter
、同じ名前で同じ順序の型の 3 つの列があります。
問題
sqlAppendTable
文字変数が引用符で囲まれていない SQL ステートメント、つまり次の形式の出力を生成します。
この出力をdbExecute
ステートメントで使用すると、値が引用符で囲まれていないため、エラーが発生しValue one one, ...
ます'Value one one', ...
。
私の質問
- この関数を取得して文字変数を引用符で囲む方法はありますか? もしそうなら、どのように?
- この機能をこの目的で使用できますか? (情報は、それが何を意味するにせよ、「主にバックエンドの実装者に役立つ」と述べています。)
- できない場合、使用できる別の機能はありますか?
paste
(または同様の関数)を使用してカスタムメイドのステートメントを作成することは避けたいと思います。これは、面倒でエラーが発生しやすく、異なるテーブルに簡単に複製できないためです。