問題タブ [rpostgresql]

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 投票する
2 に答える
1606 参照

r - dbPreExists && !overwrite のエラー: 'x && y' の無効な 'x' タイプ

RPostgreSQL および sqldf パッケージを使用して SQL を実行しています。

繋がり:

次に、かなり複雑な SQL ステートメントを作成し、最後に (vSQLは SQL 選択ステートメント) を作成します。

次のエラーが表示されます。

再現可能な例を作成できませんでした。言えることは次のとおりです。

  1. 生成された SQL ステートメントは、データベースで直接実行すると機能します (文字列を R から pgAdmin にコピーしました)。
  2. 接続は機能し、使用できますsqldf("select * from any_table, connection=con")
  3. スクリプトに異なる入力パラメーターを使用して短い SQL を生成すると機能します
  4. SQL の長さだけが問題ではありません。試してみました: inSQL = paste(rep("select 1::int ",10000),collapse=" union all ")、別のエラーになります:RS-DBI driver: (could not Retrieve the result : ERROR: stack depth limit exceeded
  5. SQL ステートメントに奇妙な文字はありません

このエラーが何を意味するのか分かりますか?

セッション情報:

PostgreSQL:

RStudio 0.97.332

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

r - RPostgreSQL を使用してデータをプルするときに、R でタイムスタンプ列を処理する特定の方法はありますか?

PostgreSQL データベースからデータを取得しようとしていますが、タイムスタンプ フィールドの結果に一貫性がありません。POSIXct の結果を適切に処理しているかどうかはわかりません。そうでなければ、RPostgreSQL パッケージにバグを見つけたと思います。問題を再現する方法は次のとおりです。

postgres データベースに 1 つのフィールドを持つテーブルがあるとします (これを PostgreSQL で実行します)。

そして、数百のレコードがあるとしましょう。それらをRに入力します。コードは次のとおりです。

値を取得しようとすると、結果のデータから時間コンポーネントが取り除かれます

ただし、結果のクラスは POSIXct です。

結果が一度に 1 レコードずつフェッチされる場合、hour:min が 00:00 に等しい値は時間コンポーネントを失います。

回避策として、一度に 1 レコードずつ結果を取得し、修正して、data.frame に集約しています。しかし、これは非常に時間がかかり、特に大規模なデータ セットの場合はそうです。なぜこれが起こっているのか、この問題にどのように対処するのかについてのアイデアはありますか?

前もって感謝します!

0 投票する
1 に答える
543 参照

r - RPostgreSQL を使用して文字列を要素としてインポートする

大きな postgresql テーブルからデータをインポートしたいと思います。スペースを節約するために、テキスト値を係数に自動的に変換したいと思います。

たとえば、データセットには多くの文字列変数 (「男性」、「女性」など) があり、これらを要因としてインポートできれば、次のようなコマンドを使用してデータ セットを読み込むことができます。

(#, "Male") のような行を受け取る代わりに、メモリを節約できるように (#, 0) のような行が必要です。

選択したデータベースで以下のクエリを試し、「性別」列を文字列と等しくすると、df_large のサイズがはるかに大きくなることがわかります。

0 投票する
1 に答える
789 参照

r - R RpostgreSQL bigint データ型

私は対処する必要があります、私は大きなint、主キーの値だと思います1380742793415240。RI ではオプション (scipen=100) を簡単に調整できますが、そのデータを postgres db に保存する必要があります。私はすでに dbWriteTable のデフォルト (倍精度) を result: に違反しています (おそらく ...4e+015 表現でキーが重複しています) invalid input syntax for integer: "1.38074279341524e+015"

例: dt に続いて db から保存およびロードを試みます

postgresでこの種のデータを保存およびロードする効果的な方法は何ですか?

0 投票する
1 に答える
580 参照

sql - Rpostgresql: 入力の文字列を適切にエスケープする

R と psql の橋渡しをしています。SQL インジェクションに対する脆弱性を取り除きたいと考えています。ドキュメントを見て、私はそれを望んでいました:

次のようなものを使用できます。

しかし、残念ながらこれはうまくいかないようです。パラメーターに間違った記号を使用している可能性があります (? 以外のもの)。

私が見つけた最善の妥協点は、次の方法で文字列をエスケープすることです。

(注: 関数が適切にエスケープする方法を知ることができるように、接続が必要です)。

クエリをまとめるときに、ペーストで使用するすべての文字列をエスケープする必要があることを意味します。それほどエレガントではありません。しかし、最良の選択肢のようです。他のアイデアはありますか?

0 投票する
3 に答える
5555 参照

sql - RPostgreSQL でパラメータを使用する方法 (データを挿入するため)

を使用して既存の PostgreSQL テーブルにデータを挿入しようとしRPostgreSQLていますが、SQL パラメータ (準備済みステートメント) の構文がわかりません。

たとえば、次のことをしたいとします

insert into mytable (a,b,c) values ($1,$2,$3)

パラメータを指定するにはどうすればよいですか? dbSendQueryにパラメータを入れるだけでは理解できないようです...

テーブル全体をダンプするために使用できることがわかりましdbWriteTableたが、列を指定することはできません (デフォルトなどには適していません)。とにかく、そこにデータを取得したら、他のクエリについてこれを知る必要があります(したがって、これは実際には挿入固有ではないと思います)!

確かに、明らかな何かが欠けているだけです...

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

r - RPostgreSQL を使用して AWS Redshift に接続できない

RPostgreSQL を使用して AWS Redshift データベースに接続できません。

動作するコードの例はありますか?

jre7 へのドライバ パスの Windows 7 postgresql-8.4-703.jdbc4 が環境に設定されています