Discussion:
Einlesen von Tabellen mit "ungültiger Eingabesyntax"
Exner, Peter
2006-06-12 09:29:24 UTC
Permalink
Hallo!

Ich möchte eine Tabelle laden, die zuvor aus einer Informix-DB entladen wurde. Hierbei gab es verschiedene Hürden zu überwinden:

1. Datumsformat. Lösung: SET DATESTYLE TO german;
2. Leere Felder. Lösung: ... NULL AS '';
3. Die Anzahl der entladenen Spalten stimmt nicht. Lösung: Dummy-Feld in die PG-Tabelle hinten angehängt.

noch offen:
4. FEHLER: ungültige Eingabesyntax für Typ numeric: »922,27«. Lösung: ???

Vermutlich werden die Kommas falsch verstanden und Punkte als Dezimaltrenner erwartet. Kann ich PG überreden, doch die Kommas zu akzeptieren (z.B. mit SET WASAUCHIMMER TO ',')?

Eingesetzt wird Postgres 8.1.3.

Danke für Antworten bereits jetzt!
Peter

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org
A. Kretschmer
2006-06-12 09:49:36 UTC
Permalink
Post by Exner, Peter
4. FEHLER: ungültige Eingabesyntax für Typ numeric: »922,27«. Lösung: ???
Vermutlich werden die Kommas falsch verstanden und Punkte als
Ja.
Post by Exner, Peter
Dezimaltrenner erwartet. Kann ich PG überreden, doch die Kommas zu
akzeptieren (z.B. mit SET WASAUCHIMMER TO ',')?
IIRC nein. Du kannst aber mit $TOOL das wandeln.

select * from toolbox limit 3 order by random();
tool
----
sed
awk
perl
(3 rows)


Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47215, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org
Harald Fuchs
2006-06-12 18:20:55 UTC
Permalink
Post by A. Kretschmer
Post by Exner, Peter
4. FEHLER: ungültige Eingabesyntax für Typ numeric: »922,27«. Lösung: ???
Vermutlich werden die Kommas falsch verstanden und Punkte als
Ja.
Post by Exner, Peter
Dezimaltrenner erwartet. Kann ich PG überreden, doch die Kommas zu
akzeptieren (z.B. mit SET WASAUCHIMMER TO ',')?
IIRC nein. Du kannst aber mit $TOOL das wandeln.
select * from toolbox limit 3 order by random();
tool
----
sed
awk
perl
(3 rows)
Das wäre jedenfalls die einfachste und schnellste Lösung. Falls Du
jedoch betriebssystemtechnisch behindert sein solltest (sprich:
Mickerweich), geht es notfalls auch mit PostgreSQL allein: lade Deinen
Dump in eine temporäre Tabelle, in der die entsprechenden Spalten als
TEXT statt NUMERIC definiert sind, und verwende dann die einschlägigen
Stringfunktionen zur Konvertierung.


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faq

Loading...