SQL-Ascii Dump

Hallo,
ich möchte einen Backup der Daten einer Tabelle von einem Rechner auf einen anderen Rechner durchführen. Bei beiden Rechnern verwende ich postgres und das Encoding ist jeweils SQL-Ascii.
Das Problem ist, dass die Sonderzeichen bei einem Daten-Backup durch “?” ersetzt werden.
Kann mir jemand helfen ?
Jens

Kann ich nicht nachvollziehen. Kannst Du uns mal sagen, wie genau Du das machst (pg_dump, COPY). Vermutlich hast Du mit dem Client-Encoding da was falsch. Und ja: der Dump ist ja lesbar, was steht dort drin? Und welche PG-Version ist am Start, und welches OS?


Andreas

Ich nehme den pgadmin zur Hilfe und erstelle eine “*.sql”-Datei, die Insert-Befehle enthält.

Nun ja, das ist nur ein Bruchteil an Informationen, um die ich Dich bat. Btw.: COPY geht erheblich schneller als INSERT.

Andreas

Schon in der Dump-Datei stehen die Fragezeichen statt Sonderzeichen.
Auf dem Ausgangsrechner läuft Postgresql Version 8.0.4 und gentoo.
Auf dem Zielrechner läuft Postgresql Version 8.1.11

mit COPY habe ich auch schon probiert

Nun, hier klappt es:

kretschmer@pegasus:~$ echo "create database umlaute encoding = 'sql-ascii';" | psql -U webmaster -X test
CREATE DATABASE
kretschmer@pegasus:~$ echo "create table umlaut(u text);" | psql -U webmaster -X umlaute
CREATE TABLE
kretschmer@pegasus:~$ echo "insert into umlaut values('äöüÄÖÜß')" | psql -U webmaster -X umlaute
INSERT 0 1
kretschmer@pegasus:~$ pg_dump -U webmaster umlaute | grep -i -A 10 -B 10 copy
    u text
);


ALTER TABLE public.umlaut OWNER TO webmaster;

--
-- Data for Name: umlaut; Type: TABLE DATA; Schema: public; Owner: webmaster
--

COPY umlaut (u) FROM stdin;
äöüÄÖÜß
\.


--
-- Name: public; Type: ACL; Schema: -; Owner: postgres
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM postgres;
kretschmer@pegasus:~$

Andreas

Das werde ich nochmal probieren.
Danke.
Jens

Nur als Hinweis: pg_dump kennt Optionen, das Client-Encoding zu setzen. Und es hat Optionen, damit es nur auf eine Tabelle wirkt (das wolltest Du ja, oder?).

Andreas

Ich habe beim Dump versucht, die Option “-E” zu setzen. Da kommt die Meldung: “unbekannte Option -E”.
Dann habe ich versucht, die Umgebungsvariable PGCLIENTENCODING zu setzen. Hatte auch keine Auswirkung auf das Skript.
Im Skript steht auch “SET client_encoding=‘SQL_ASCII’”. Aber es steht immer noch das sonderbare Fragezeichen statt eines"ü".