Le moteur SQL n'a pas toujours besoin d'être appelé - cela dépend du client et si le client a le moteur PLSQL intégré. Par exemple, Oracle Forms dispose d'un moteur PLSQL intégré. Par conséquent, lors de l'appel d'une procédure PLSQL, l'intégralité de l'appel peut être transmise au moteur et aucun changement de contexte ne se produit. Cependant, avec PRO*C, vous exécutez toujours des instructions SQL qui exécutent ensuite des "blocs" d'appel PLSQL comme ceci :
begin
call_proc;
end;
Cela a invoqué l'analyseur SQL qui bascule alors vers le moteur PLSQL dès que le bloc anonyme "begin" est exécuté. C'est juste la façon dont le client est architecturé. SQL*Plus est similaire, vous exécutez le moteur SQL pour appeler les blocs PLSQL.