Pergunta : Cur da referência

Eu tenho o seguinte cursor que eu quero retornar enquanto para fora o parâmetro using uma loja Proc.
I quer retornar este refcursor somente quando ROWCOUNT > 0. O registro vazio do retorno outro set.
How pode mim redigir um procedimento da loja de PLSQL que retornam o refcursor? o
When que os registros são começ processado nós quer travar usando-se PARA A FAIXA CLARA LOCKED.

Thanks
da ATUALIZAÇÃO class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
1:
2:
3:
4:
5:
>SELECT notpretty ENO " do class= " do id= " codeSnippet749489 do
= DO SAL: V_LIMIT
E DEPTNO =: V_DEPT
E ROWNUM < 500
ORDEM POR ENO;
class= do

Resposta : Cur da referência

A resposta rápida é você realmente não pode fazer isso.

Não há uma maneira de verific as fileiras retornadas em um cursor a menos que para o esforço elas. uma vez que você os busca, você não pode restaurar o cursor de volta à primeira fileira.

Se a pergunta funciona relativamente rapidamente você pode selecionar a primeira fileira para ver se há pelo menos uma fileira.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
remoção da tabela tab1 da gota;
criar a tabela tab1 (carvão animal col1 (1));

introduzir nos valores tab1 (“a ");
introduzir nos valores tab1 (“a ");
introduzir nos valores tab1 (“a ");
cometer;


criar ou substituir o myProc do procedimento (inChar no carvão animal, do outCur no sys_refcursor para fora)
é
	carvão animal tmpChar (1);
começar

	--verific para ver se há dados antes do descanso do código
	começar
		selecionar “x” em tmpChar de tab1 onde col1=inChar e rownum=1;
		exceção
			quando NO_DATA_FOUND então
				raise_application_error (- 20002, “nenhuns dados encontraram.  Não podem continue.");
	extremidade;


	abrir o outCur para col1 seleto de tab1 onde col1=inChar;


extremidade;
/

mostrar erros


--testar usando variáveis do SQL*Plus
refcursor do myCur do var

myProc do exec (“a”: myCur);

myCur da cópia

myProc do exec (“b”: myCur);
Outras soluções  
 
programming4us programming4us