Istnieje stara sztuczka z użyciem nazwanego potoku (działa na Uniksie, nie wiem o Windowsie)
- utwórz nazwany potok:
mkfifo /tmp/omyfifo - zapisz do niego zawartość pliku:
zcat mycsv.csv.z > /tmp/omyfifo & - [z psql]
copy mytable(col1,...) from '/tmp/omyfifo' - [po zakończeniu] :
rm /tmp/omyfifo
zcat w tle zablokuje się aż do czytnika (tutaj:COPY polecenie) rozpocznie czytanie i zakończy się na EOF. (lub jeśli czytnik zamknie rurkę)
Możesz nawet uruchomić wiele par rur + zcat, które zostaną odebrane przez wiele COPY instrukcji w skrypcie sql.
Będzie to działać z pgadmin, ale kolejka fifo (proces + zcat) powinna być obecna na maszynie, na której działa serwer DBMS.
BTW:podobna sztuczka przy użyciu netcata może być użyta do odczytania pliku ze zdalnej maszyny (która oczywiście powinna zapisać plik do gniazda sieciowego)