sql >> Databasteknik >  >> RDS >> Oracle

Varför anropas SQL Engine för PL/SQL-anrop från klientapplikationen?

SQL-motorn behöver inte alltid anropas - den beror på klienten och om klienten har PLSQL-motorn inbäddad i den. Till exempel har Oracle Forms en inbäddad PLSQL-motor, så när du anropar en PLSQL-procedur kan hela anropet skickas till motorn och ingen kontextväxling sker. Men med PRO*C kör du alltid SQL-satser som sedan exekverar "block" av PLSQL-anrop så här:

begin
   call_proc;
end;

Detta har anropat SQL-parsern som sedan växlar till PLSQL-motorn så fort det anonyma "start"-blocket exekveras. Det är bara så kunden är utformad. SQL*Plus är liknande, du kör SQL-motorn för att anropa PLSQL-blocken.




  1. LOAD DATA INFILE fel 1064

  2. RANK, DENSE_RANK och ROW_NUMBER funktioner i Oracle

  3. Hur man använder if/else-villkor i en select i mysql

  4. PostgreSQL Skapa index