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.