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

Warum wird die SQL Engine für den PL/SQL-Aufruf von der Clientanwendung aufgerufen?

Die SQL-Engine muss nicht immer aufgerufen werden – es hängt vom Client ab und davon, ob der Client die PLSQL-Engine eingebettet hat. Beispielsweise verfügt Oracle Forms über eine eingebettete PLSQL-Engine, sodass beim Aufrufen einer PLSQL-Prozedur der gesamte Aufruf an die Engine übergeben werden kann und keine Kontextumschaltung erfolgt. Mit PRO*C führen Sie jedoch immer SQL-Anweisungen aus, die dann "Blöcke" des PLSQL-Aufrufs wie folgt ausführen:

begin
   call_proc;
end;

Dies hat den SQL-Parser aufgerufen, der dann zur PLSQL-Engine wechselt, sobald der anonyme „begin“-Block ausgeführt wird. Genau so ist der Client aufgebaut. SQL*Plus ist ähnlich, Sie führen die SQL-Engine aus, um die PLSQL-Blöcke aufzurufen.