Oracle: Bind-Variablen

Hallo,
kann mir jemand vielleicht anhand eines Beispieles kurz
erklären, was der Sinn und Zweck von Bind-Variablen ist?

Viele Grüße

Sina

Hi,

kann mir jemand vielleicht anhand eines Beispieles kurz
erklären, was der Sinn und Zweck von Bind-Variablen ist?

Du brauchst Dich nicht mehr darum zu kümmern, die Werte richtig zu verpacken, also etwa welche Zeichen nun wie zu kodieren sind usw. Das ist zwar nicht der einzige Grund, aber einer der entscheidensten. Ein weiterer, ebenfalls wichtiger Grund ist, dass sich das Statement nicht verändert und somit nicht neu kompiliert werden muss. Das spart (Rechen-)Zeit.

Cheatah

Oracle muss sql-Befehle compilieren, bevor sie ausgeführt werden können. Einmal kompiliert merkt Oracle sich den Befehl und das Kompilat in einem Cache. Wird ein sql-Befehl im Cache gefunden, so muss nicht neu kompiliert werden. => Der sql Befehl wird deutlich schneller ausgeführt, da das Kompilieren nicht notwendig ist.

Das Suchen im Cache möglichst einfach ist, werden sql-Befehle Zeichen für Zeichen verglichen. Stimmt ein Befehl exakt überein, so kommt es zum cache hit. Ändert man Zeichen im Befehl, etwa den Inhalt einer Zeichenkette, so handelt es sich um einen neuen Befehl => kein Fund im Cache.

Mittels Bind-Variablen umgeht man dieses Problem, der SQL-Befehl und die Daten der Variablen werden getrennt übermittelt. Da Änderungen an den Daten den sql-Befehl nicht ändern, wird er stets im Cache gefunden.

Gruß Markus