Re: Welchen 'Data type' nehme ich hier?

Albe Laurenz <[email protected]>
Newsgroups gmane.comp.db.postgresql.german
Message-ID <A737B7A37273E048B164557ADEF4A58B057B1D6B@ntex2010a.host.magwien.gv.at>
Guenther Boelter schrieb:
> >> ich habe mal wieder ein kleineres Problem im Rahmen der Umstellung von
> >> MySQL auf PostgreSQL:
> >>
> >> Welchen 'data type' nehme ich sinnvollerweise fuer
> >>
> >> A:) PDF-Dateien (ca. 25 KB gross)
> >>
> >> B:) XML-Dateien (ca. 10-20 KB gross)
> >>
> >> Die PDF-Dateien habe ich zunaechst mal als BYTEA gespeichert, die
> >> XML-Dateien als TEXT.
> >
> > Dass sollte okay sein. Es gibt auch einen speziellen XML-Datentyp:
> > http://www.postgresql.org/docs/current/interactive/datatype-xml.html
> >
> > Ob dieser besser als TEXT ist mußt Du entscheiden, der XML-Datentyp hat
> > halt noch z.B. Konsistenzprüfungen und so.
> >
> >
> >>
> >> Bei den PDF-Dateien konnte ich es bisher noch nicht pruefen, aber bei
> >> den XML-Dateien scheint PostgreSQL die enthaltenen '\n' in '\012'
> >> unzuwandeln. Letzt sich Letzeres irgendwie verhindern?
> >
> > Unwahrscheinlich. PostgreSQL vergreift sich nicht an den Daten.
> > Im übrigen ist '\n' oktal '\012'. Evtl. ist was bei Konvertierungen
> > zwischen Windows / Linux kapott gegangen.

> kurzes Feedback zu dem Problem mit dem  '\n' bzw. '\012':
> 
> Es ist tatsaechlich ein Fehler in der Library den MySQL einfach ignoriert hat. PostgreSQL dagegen gibt
> folgende Warnung aus:
> 
> WARNING:  nonstandard use of \\ in a string literal
> LINE 1: EXECUTE qpsqlpstmt_1 ('<?xml version="1.0" encoding="UTF-8"?...
>                               ^
> HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.
> 
> Dafuer musste ich allerdings auch erst den Debugger anwerfen.

Es handelt sich um eine PostgreSQL-Version vor 9.1, richtig?

Es gibt mehrere Lösungen:

1) standard_conforming_strings = on
2) Wörtlich gemeinte Backslashes verdoppeln und die String-Konstante
   mit einem "E" einleiten: EXECUTE s (E'<?xml ... \\n ...>');
3) Extended Query Protocol (mit Parametern) verwenden

Liebe Grüße,
Laurenz Albe


-- 
Sent via pgsql-de-allgemein mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.