Oder wie meine Landsleute sagen würden: „kaufmännisches Und“ und Select List. Gerade stand ich vor der Aufgabe, eine dynamische Select List mit einem Report zu verbinden. Soweit kein Problem. Was ist aber, wenn der Anzeigename und der Wert der Select List aus dem „sprechenden Wert“ der Datenbank bestehen und nicht die Kombination aus Wert und ID darstellen. Also in etwa so:
SELECT name d, name r FROM table
Auch das funktioniert, solange kein „kaufmännisches Und“ in der Select List vorkommt. Wird ein solcher Wert dann ausgewählt, zeigt der Browser einen HTTP 400 Error.
Es gibt aber eine einfache Lösung dafür, nämlich die Funktion APEX_UTIL.URL_ENCODE. Der Code sieht dann so aus:
SELECT name d, apex_util.url_encode(name) r FROM table