PgJDBC unterstützt COPY
nicht direkt, sondern über den CopyManager
API erhalten Sie von der PGConnection
Schnittstelle der java.sql.Connection
von PgJDBC zurückgegeben.
Leider können Sie das nicht aus einer einfachen SQL-Datei verwenden, in der Sie COPY
mischen Operationen in mit anderen Befehlen.
Ich persönlich würde psql
berappen um .sql
auszuführen Dateien mit Ant <exec>
Aufgabe. Auf diese Weise können Sie COPY
einfügen Daten inline in Ihren SQL-Dateien.
Es wäre schön, PgJDBC zu ermöglichen, COPY
zu handhaben , aber es ist nicht einfach. Es ist praktisch ein anderer Protokollmodus in PostgreSQL, und es macht nicht viel Sinn, die üblichen JDBC-Schnittstellen mit vorbereiteten Anweisungen, Ausführen usw. dafür zu verwenden. Wir könnten ein execSQLScript
bereitstellen auf der benutzerdefinierten PGconnection
aber das würde Ihnen nicht viel helfen, weil Dinge wie Ants <sql>
Aufgabe würde es nicht verwenden. Sie müssten eine benutzerdefinierte Aufgabe schreiben.
Stattdessen müsste PgJDBC die Clients ziemlich anlügen - wenn es COPY
eingibt Modus nach einem COPY
Befehl, müsste es die JDBC-Spezifikation ignorieren und nicht wirklich das tun, was es als Reaktion auf die Ausführung von JDBC-Anweisungen tun sollte. Dies würde wahrscheinlich alle möglichen Dinge kaputt machen.
Also - im Moment ist es bei weitem die einfachste Option, einfach psql
auszuführen Befehl zu tun, was Sie wollen.