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.