Det finns ett gammalt knep för att använda en namngiven pipe (fungerar på Unix, vet inte om Windows)
- skapa en namngiven pipe:
mkfifo /tmp/omyfifo - skriv filens innehåll till den:
zcat mycsv.csv.z > /tmp/omyfifo & - [från psql]
copy mytable(col1,...) from '/tmp/omyfifo' - [när du är klar] :
rm /tmp/omyfifo
zcat i bakgrunden kommer att blockeras tills en läsare (här:COPY). kommando) börjar läsa och avslutas vid EOF. (eller om läsaren stänger röret)
Du kan till och med starta flera pipes+zcat-par, som plockas upp av flera COPY uttalanden i ditt sql-skript.
Detta kommer att fungera från pgadmin, men fifo (+zcat-processen) bör finnas på maskinen där DBMS-servern körs.
BTW:ett liknande knep med netcat kan användas för att läsa en fil från en fjärrdator (som naturligtvis ska skriva filen till nätverksuttaget)