Das Fragezeichen (?
) wird bei JDBC als Platzhalter verwendet, ist aber auch ein gültiges Literal in der pattern
-Klausel (z. B. für nicht-gierige Quantifizierungen). Der Oracle JDBC-Treiber behandelt das Fragezeichen grundsätzlich als Platzhalter. Um das Fragezeichen-Literal in der pattern
-Klausel zu verwenden, bietet der Oracle JDBC-Treibe zwei Möglichkeiten:
Statement.setEscapeProcessing(false)
Der JDBC-Standard erlaubt die klientseitige Verarbeitung der SQL-Anweisung abzuschalten. Diese Methode funktioniert jedoch nicht für PreparedStatement
s und kann daher nicht mit Bind-Parametern verwendet werden.
{\?\}
Der Oracle JDBC-Treiber unterstützt eine proprietäre Escapesyntax für das Fragezeichen: {\?\}
. Diese Zeichenkette kann in der pattern
-Klausel anstatt eines einfachen Fragezeichens verwendet werden. Diese Methode funktioniert auch mit PreparedStatement
.
Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how