Ich versuche eine Funktion zum Laden von CSV-Daten in eine Tabelle zu schreiben. Ich möchte, dass das Eingabeargument der Pfad zur Datei ist.
%Vor%Wenn ich versuche, diese Funktion zu erstellen, bekomme ich
Syntaxfehler bei $ 1
Was ist daran falsch?
Zunächst haben Sie einen Funktionsnamen, der nicht übereinstimmt:
%Vor%
Aber das ist ein zusätzliches Problem.
Sie benötigen dynamisches SQL:
%Vor% format()
benötigt PostgreSQL 9.1 +. < br>
Auf diese Weise können wir den Dateinamen ohne einen zusätzlichen Satz von (gestrichenen) einfachen Anführungszeichen angeben. Anruf:
Dies ist sehr anfällig für SQL-Injektion . Um dagegen abzusichern benutze ich format()
mit %L
, um den Dateinamen zu bereinigen. Dies sorgt auch für die notwendigen umschließenden einfachen Anführungszeichen.
Tags und Links sql postgresql plpgsql dynamic-sql postgresql-copy