-
Questão muito complicada, mas o erro da B é afirmar que executa algo no "engine PL/SQL do banco".
Na verdade executa os procedimentos na própria engine onde estiver o PL/SQL, como visto na A, pode não estar no banco.
Para o banco, o PL/SQL manda apenas instruções SQL, o resto é feito na própria engine.
-
Apesar de parecer ser complicada, essa questão foi extraída diretamente da documentação do oracle:
The PL/SQL compilation and run-time system is an engine that compiles and executes PL/SQL blocks and subprograms. The engine can be installed in an Oracle server or in an application development tool such as Oracle Forms. In either environment, the PL/SQL engine accepts as input any valid PL/SQL block or subprogram. Figure 1-3 shows the PL/SQL engine processing an anonymous block. The PL/SQL engine executes procedural statements but sends SQL statements to the SQL engine in the Oracle database.
Fonte:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/overview.htm#i4603
-
de forma traduzida:
PL / SQL Arquitetura A compilação PL / SQL e tempo de execução do sistema é um motor que compila e executa blocos PL / SQL e subprogramas. O motor pode ser instalado em um servidor Oracle ou em uma ferramenta de desenvolvimento de aplicações, tais como Oracle Forms.
Em qualquer ambiente, o motor de PL / SQL aceita como entrada um bloco PL / SQL válida ou subprograma. Figura 1-3 mostra o mecanismo PL / SQL processamento de um bloco anônimo. O motor de PL / SQL executa instruções processuais, mas envia instruções SQL para o motor SQL no banco de dados Oracle.
Figura 1-3 Mecanismo de PL / SQL
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/overview.htm#i4603
-
vai me desculpar, mas esse "qualquer" da letra C não pode aparecer como "qualquer" fora do contexto de um texto maior. Tanto é, que o original em inglês usa "either"
-
alternativa b) incorreta. Ao executar uma instrução é dita como um bloco de instrução PL/SQL. O que for procedural é executado pelo SQL Statament Executor(Oracle Server) e o que for procedural é executado pelo Procedural Statamen Executor (A engine do PL/SQL). SQL Chega no PL/SQL Engine mas não é executado nele, pois não é processado no Procedural Statament Executor dentro do PL/SQL Engine.
-
A Arquitetura PL/SQL possui 2 elementos básicos: PL/SQL Engine e Oracle Server
O primeiro a receber o bloco PL/SQL é o Engine. Ele executa a parte procedural e manda a parte SQL para o Oracle Server (servidor), pois é necessário acessar fisicamente o banco de dados para obter as informações requeridas na consulta.
Logo, a letra B está incorreta, pois afirma que a parte SQL é executada no PL/SQL Engine. Já vimos que essa parte é executada no Oracle Server (Servidor).
Bons estudos!