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 ...
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.
Tags und Links sql r postgresql rpostgresql