Freitag, 19. Juni 2015

Bind-Variables vs. Substitution-Variables

Substitution-Variables werden durch & bzw. && gekennzeichnet. Diesen kann optional ein Name folgen. Bei & (temporary substitution variable) fragt SQL Developer jedes Mal nach dem Wert. Bei && (permanent substitution variable) wird ein einziges Mal gefragt und der Wert an allen Stellen eingesetzt. Der Wert ist jedoch ein einfacher String-Wert, so dass ggf. Quotes verwendet werden müssen.
Die Verwendung von Substitution-Variables kann durch die Eingabe von
set define off; 
abgeschaltet werden. Dies ist insbesondere dann von Interesse, wenn ein zu prüfender String ein & Zeichen enthält.

Häufig werden eher Bind-Variables benötigt. Diese werden als Name mit einem : als Prefix gekennzeichnet (z.B. :foo). Für diese wird einmal der benötigte Wert angefragt und dann an allen Stellen der Query eingefügt.
Beispiel:

select :foo, :foo || :foo from dual;