PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres-Kopierbefehl, Binärdatei

Eine Möglichkeit, die funktioniert, obwohl Sie sie vielleicht nicht mögen:

psql -At -c "select encode(content, 'base64') from t where ..."  | base64 -d

dh den Inhalt als base64 drucken und dekodieren. Ich denke, die Realität ist, dass psql dazu gedacht ist, lesbare Ausgaben zu erzeugen, und es absichtlich schwierig ist, es davon zu überzeugen, rohe Binärdaten auszulesen.

Ich nehme an, wenn Sie genug wollen, können Sie ein Tool (Perl/Python-Skript) schreiben, um sich mit der Datenbank zu verbinden und die Rohausgabe direkt zu drucken.

Die "WITH BINARY"-Option von COPY macht nicht nur eine einfache binäre Ausgabe, sie führt eine Kodierung durch, auf die man sich wahrscheinlich nicht verlassen kann.