Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Sind PL/SQL-Variablen in Cursorn effektiv die gleichen wie Bind-Parameter?

Zunächst einmal eine gute Frage.

Ich möchte ein kleines Zitat machen:

Jede Referenz auf eine PL/SQL-Variable ist tatsächlich eine Bind-Variable.

Davon abgesehen,

PL/SQL selbst kümmert sich um die meisten Probleme im Zusammenhang mit Bind-Variablen , bis zu dem Punkt, an dem der meiste Code, den Sie schreiben, bereits Bind-Variablen verwendet, ohne dass Sie es wissen. Nehmen Sie zum Beispiel das folgende Bit von PL/SQL:

create or replace procedure dsal(p_empno in number)
as
  begin
    update emp
    set sal=sal*2
    where empno = p_empno;
    commit;
  end;
/

Jetzt denken Sie vielleicht, dass Sie p_empno durch eine Bind-Variable ersetzen müssen. Die gute Nachricht ist jedoch, dass jede Referenz auf eine PL/SQL-Variable tatsächlich eine Bind-Variable ist.

Quelle