Er is een oude truc om een named pipe te gebruiken (werkt op Unix, weet niets van Windows)
- maak een named pipe:
mkfifo /tmp/omyfifo - schrijf de bestandsinhoud erin:
zcat mycsv.csv.z > /tmp/omyfifo & - [van psql]
copy mytable(col1,...) from '/tmp/omyfifo' - [wanneer klaar] :
rm /tmp/omyfifo
De zcat in de achtergrondkleur blokkeert totdat een lezer (hier:de COPY command) begint met lezen en eindigt bij EOF. (of als de lezer de pijp sluit)
Je zou zelfs meerdere pijpen+zcat-paren kunnen starten, die worden opgepikt door meerdere COPY instructies in uw sql-script.
Dit werkt vanuit pgadmin, maar de fifo (+zcat-proces) moet aanwezig zijn op de machine waarop de DBMS-server draait.
Tussen haakjes:een soortgelijke truc met netcat kan worden gebruikt om een bestand van een externe machine te lezen (die het bestand natuurlijk naar de netwerksocket zou moeten schrijven)