sql >> Database teknologi >  >> RDS >> PostgreSQL

JDBC KOPI med ant

PgJDBC understøtter ikke COPY direkte, men det gør det via CopyManager API kan du få fra PGConnection grænsefladen til java.sql.Connection returneret af PgJDBC.

Desværre kan du ikke bruge det fra en almindelig SQL-fil, hvor du blander COPY operationer med andre kommandoer.

Personligt ville jeg betale til psql for at køre .sql filer ved hjælp af Ant <exec> opgave. På den måde kan du inkludere COPY data in-line i dine SQL-filer.

Det ville være rart at aktivere PgJDBC til at håndtere COPY , men det er ikke let. Det er faktisk en anden protokoltilstand i PostgreSQL, og det giver ikke meget mening at bruge de sædvanlige JDBC-grænseflader med forberedte sætninger, eksekvere osv. til det. Vi kunne levere et execSQLScript på den tilpassede PGconnection men det ville ikke hjælpe dig meget, fordi ting som Ants <sql> opgave ville ikke bruge det. Du skal skrive en tilpasset opgave.

I stedet skulle PgJDBC stort set lyve over for klienter - når den indtastede COPY tilstand efter en COPY kommando, skulle den ignorere JDBC-specifikationen og ikke rigtig gøre, hvad den skulle som svar på, at JDBC-sætningen udføres. Dette ville sandsynligvis ødelægge alle mulige ting.

Så - indtil videre er langt den nemmeste mulighed bare at udføre psql kommando til at gøre, hvad du vil.




  1. Hvordan Random() virker i PostgreSQL

  2. Slet en Crashed Innodb-tabel

  3. Hvad er den bedste praksis for primærnøgler i tabeller?

  4. Postgresql COPY-kommando, der giver tilladelser nægtet fejl