2017-09-21 4 views
1

Wenn ich mit PostgreSQL und Dateien arbeite (z. B. um den Inhalt einer Datei in eine Tabelle zu kopieren), muss die Datei lokal auf dem Computer gespeichert werden, der die Datenbank hostet. Gibt es eine Chance das zu ändern?PostgreSQL-Dateiverwaltung und Verzeichnisse

Wenn ich den folgenden Code verwenden, um den Inhalt einer CSV-Datei zu kopieren, verweist der Pfad auf den Computer, der die Datenbank hostet.

Ich habe ein Frontend, das temporäre .csv-Dateien erstellt. Ihr Inhalt muss in der Datenbank gespeichert werden.

Was ist der übliche Weg? Die einzige Möglichkeit, die ich sehe, ist die Installation eines FTP-Servers, an den das Frontend die .csv-Dateien sendet, aber ich würde es vorziehen, wenn der Inhalt in der Datenbank gespeichert wird, ohne die erstellte .csv in einem ftp zu speichern Ordner, der vom Datenbankserver erreichbar ist.

Antwort

2

Die meisten Client-Treiber unterstützen einen Wrapper um das COPY-Protokoll, so dass Sie über den Client-Treiber COPY ... FROM STDIN können.

nPgSQL ist keine Ausnahme, siehe the documentation.

Sie scheinen auf halbem Weg zu sein, da Sie conn.BeginTextImport verwendet haben. Ich stelle mir vor, Sie haben gerade nicht realisiert, dass Sie FROM STDIN angeben können, und dann die zurückgegebene writer Schleife durchlaufen, um Zeilen aus einer lokalen CSV-Datei zu schreiben.

Verwandte Themen