Forma correta ou mais eficiente de fazer for select no oracle

0 respostas
lucas_carvalho100

Boa tarde pessoal mais uma vez to buscando a ajuda do pessoal, qual a melhor forma de fazer um for select no oracle, bem vou tentar ser mais claro…

Por exemplo sei fazer de três formas, no entanto não sei e tb não achei nd na net sobre qual é o melhor método ou o mais eficiente.

1° Forma

CREATE OR REPLACE PROCEDURE SP_PROC_TESTE

IS

CURSOR C_TESTE IS SELECT A.NOME FROM CLIENTE A;

NOME_CLI VARCHAR2(255);

BEGIN

OPEN C_TESTE;

LOOP

FETCH C_TESTE INTO NOME_CLI;
EXIT WHEN C_TESTE%NOTFOUND;

END LOOP;
CLOSE C_TESTE;

END SP_PROC_TESTE;

2° Forma

CREATE OR REPLACE PROCEDURE SP_PROC_TESTE

IS

CURSOR C_TESTE IS SELECT A.NOME FROM CLIENTE A;

NOME_CLI VARCHAR2(255);

BEGIN

FOR RESULTADO IN C_TESTE
LOOP

--COMANDOS

END LOOP;

END SP_PROC_TESTE;

3° Forma

CREATE OR REPLACE PROCEDURE SP_PROC_TESTE
IS
NOME_CLI VARCHAR2(255);
BEGIN

FOR RESULTADO IN (SELECT A.NOME FROM CLIENTE A)
LOOP

--COMANDOS

END LOOP;

END SP_PROC_TESTE;

Entao galera se alguem puder me falar qual a melhor forma eu agradeço…
Vlw

Criado 9 de junho de 2010
Respostas 0
Participantes 1