問題タブ [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.

0 投票する
4 に答える
1188 参照

r - クエリが n_max 行未満を返す場合にのみ収集する

Oracle時折、データベースROracleに接続するときに、R が処理できるよりも多くのデータを取得dbplyrする操作を実行します。dplyr::collect

これにより R がクラッシュする可能性があり、フェッチする前にデータをさらにフィルタリングまたは集計する必要があるという兆候であることがよくあります。

結果を取得するかどうかを選択する前に、結果のサイズを確認できると便利です (クエリを 2 回実行する必要はありません)。

これを可能collect2にするバリエーションに名前を付けましょう:collect

予想される行動:

これは可能でしょうか?

私はROracle/を使用DBIせずdplyrにソリューションを受け入れることもできます。

編集:

以下の回答として投稿された部分的な解決策を参照してください。使用しないデータの取得に時間がかかるため、最適ではありません。

0 投票する
2 に答える
1219 参照

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(または同様の関数)を使用してカスタムメイドのステートメントを作成することは避けたいと思います。これは、面倒でエラーが発生しやすく、異なるテーブルに簡単に複製できないためです。