Verwendung von Parametern mit RPostgreSQL (um Daten einzufügen)

8

Ich versuche, Daten in eine bereits existierende PostgreSQL-Tabelle mit RPostgreSQL einzufügen, und ich kann die Syntax für SQL-Parameter (vorbereitete Anweisungen) nicht herausfinden.

z. Angenommen, ich möchte folgendes tun:

insert into mytable (a,b,c) values (,,)

Wie gebe ich die Parameter an? dbSendQuery scheint nicht zu verstehen, wenn Sie einfach die Parameter in ... einfügen.

Ich habe festgestellt, dass dbWriteTable verwendet werden kann, um eine ganze Tabelle zu speichern, aber Sie können die Spalten nicht angeben (also nicht gut für Standardeinstellungen usw.). Und das muss ich auch für andere Abfragen wissen, sobald ich die Daten da drin habe (ich nehme an, das ist nicht wirklich einfüge-spezifisch)!

Klar, ich vermisse nur etwas Offensichtliches ...

    
Corone 25.11.2013, 19:10
quelle

2 Antworten

6

Ich habe dasselbe gesucht, aus denselben Gründen, nämlich Sicherheit.

Anscheinend hat das dplyr-Paket die Kapazität, an der Sie interessiert sind. Es ist kaum dokumentiert, aber es ist da. Scrollen Sie nach unten zu "Postgresql" in dieser Vignette: Ссылка

Zusammenfassend bietet dplyr die Funktionen sql () und escape (), die kombiniert werden können, um eine parametrisierte Abfrage zu erzeugen. Die Funktion SQL () aus dem DBI-Paket scheint genau so zu funktionieren.

%Vor%

Es gibt ein Objekt der Klassen "sql" und "character" zurück, so dass Sie es entweder an tbl () oder möglicherweise dbSendQuery () übergeben können.

Die escape () Funktion behandelt Vektoren auch korrekt, was ich am nützlichsten finde:

%Vor%

Same funktioniert natürlich auch mit Variablen:

%Vor%

Ich fühle mich jetzt viel sicherer, wenn ich Anfragen zusammenstelle.

    
LauriK 18.11.2014 13:23
quelle
1

Ab der letzten RPostgreSQL sollte es funktionieren:

%Vor%     
Niels Kristian 17.10.2016 16:09
quelle

Tags und Links