Michael Schröpl: Sonderzeichen in Datenbankinhalten

Beitrag lesen

Folgendes Problem: Datenbank Oracle soll ausgelesen werden (SQL, Java). Inhalt eines Feldes zum Beispiel 'C&A'. Folge: Abfrage/Ausgabe fängt zu spinnen an, da '&' ein Steuerzeichen ist, und als solches interpretiert wird.
Wie kann ich das umgehen?

Geht es wirklich um "Steuerzeichen"? Und was heißt "interpretiert" genau?

SQL*Plus (das Oracle-"Terminal") besitzt ein feature, welches es dem Benutzer erlaubt, SQL-Anweisungen mit "Variablen" zu formulieren. Wird ein solches statement im Dialog ausgeführt, dann promptet SQL*Plus den Namen dieser Variablen und fragt nach dem aktuellen Wert. Und das Zeichen, mit dem der Name einer solchen Variablen beginnen muß, ist das "&".

Dieses Prompting kann man in SQL*Plus aber auch abschalten. (Ich hatte neulich ein solches Problem, als ich aus ASCII-Daten via Perl SQL-Statements zum Einfügen in die Datenbank generiert habe - das geht viel schneller, als ein "richtiges" Programm zu schreiben - und diese mit SQL*Plus ausführen lassen wollte; auch in meinen Daten kamen "&"-Zeichen vor.)