PostgresSQL String Konstanten / Dateien namens “con.xyz”

Mein Ziel war es, korrupte javascript-RegEx Ausdrücke durch neue Ausdrücke zu ersetzen. Das Problem dabei waren die Zeichen, die ein Escaping benötigen, um den String(character varying) in eine Postgres DB einfügen zu können. Bei recht komplexen Ausdrücken eine umständliche Arbeit, die Zeichen einzeln zu “escapen”. Das ganze kann man sich aber folgendermaßen ersparen:

UPDATE testtabelle
SET textfeld = $stringconstant$Text mit vielen /^'\" $$stringconstant$
WHERE id = 4711;

Das ganze nennt sich “Dollar-Quoted String Constants”. Der String wird also zwischen zwei voranführenden und zwei endenden Dollarzeichen verpackt: $$ SomeCharacters/\^’#” $$ . Zwischen den Dollarzeichen kann, wie im obigen Beispiel, ein Tagname angegeben werden, um so z.B. auch verschachtelte Strukturen zu ermöglichen.

$outerTag$
someText $innerTag$ otherText $innerTag$
$outerTag$

Ein ganz anderes Thema…

Bei dem Versuch eine csv-Datei aus Java heraus anzulegen, flog eine Exception, nach ein bischen Verzweiflung und “googeln” kam heraus, dass der Name der Datei con.csv das Problem verursachte.
WindowsXP verbietet das Anlegen jeglicher Dateien mit Namen “con” gefolgt von einem Punkt oder einem Leerzeichen. Ärgerlich aber nicht umgehbar, angeblich ein Überbleibsel aus den alten MS-Dos Zeiten.


Sven Seiler
  • Share/Bookmark

Hinterlasse eine Antwort