Ich möchte lange Zahlen mit Tausendertrennzeichen formatieren. Es kann mit to_char
function wie folgt gemacht werden:
Aber wenn mein PostgreSQL-Server mit UTF-8-Kodierung in der polnischen Version von Windows ist, endet SELECT mit:
%Vor% In to_char
pattern G
wird wie folgt beschrieben: Gruppentrennzeichen (verwendet Gebietsschema) .
Dieser SELECT funktioniert ohne Fehler, wenn der Server unter Linux mit polnischem Gebietsschema ausgeführt wird.
Als Workaround verwende ich Leerzeichen anstelle von G
in Formatzeichenfolge, aber ich denke, es sollte möglich sein, tausend Trennzeichen wie in Oracle zu setzen:
Ist diese Einstellung für PostgreSQL verfügbar?
Ich bin mir ziemlich sicher, dass die Fehlermeldung wörtlich wahr ist: 0xa0 ist kein gültiges UTF-8-Zeichen.
Auf meinem Home-Server wird PostgreSQL unter Windows XP, SP3 ausgeführt. Ich kann dies in psql tun.
%Vor%Ich bekomme keine Fehlermeldung, aber ich bekomme Müll für das Trennzeichen. Könnte dies ein Codepage-Problem sein?
Als Workaround verwende ich Leerzeichen anstelle von G in Formatzeichenfolge
Lass uns darüber nachdenken. Wenn Sie ein Leerzeichen verwenden, wird der Wert möglicherweise auf einer Webseite am Ende einer Zeile oder an der Grenze einer Tabellenzelle aufgeteilt. Ich würde denken, dass ein non-breaking Raum eine bessere Wahl sein könnte.
Und in Unicode ist ein nichtbrechendes Leerzeichen 0xa0. In Unicode, nicht in UTF8. (Das heißt, 0xa0 kann nicht das erste Byte eines UTF8-Zeichens sein. Siehe UTF-8-Bit-Verteilung . )
Eine weitere Möglichkeit besteht darin, dass Ihr Client eine Byte-Reihenfolge erwartet und der Server eine andere Byte-Reihenfolge angibt. Da es sich bei den Zahlen um Einzelbyte-Zeichen handelt, spielt die Byte-Reihenfolge keine Rolle, solange sie nicht wichtig sind. Wenn der Client einen Big-Endian-MB-Charakter erwartet und ein kleines Endian-MB-Zeichen mit 0xa0 beginnt, würde ich erwarten, dass er mit der Fehlermeldung, die Sie gesehen haben, stirbt. Ich bin mir nicht sicher, ob ich das testen kann, bevor ich heute zur Arbeit gehe.
Tags und Links postgresql locale formatting