Fråga : Referens-byracka

Jag har efter markören som jag önskar att ska gå tillbaka, som ut parametern using ett lager Proc.
I önskar att gå denna refcursor tillbaka när endast ROWCOUNT > 0. Det annat återgång tomma rekordet set.
How kan mig skriva ett PLSQL-lagertillvägagångssätt som går refcursoren tillbaka?
When som rekorden är få bearbetat oss, önskar att låsa genom att använda FÖR UPPDATERINGÖVERHOPPET LOCKED.

Thanks
> för
1:
2:
3:
4:
5:
" codeBody " " >SELECT ENO, ENAME, SAL för class= " för =: V_LIMIT OCH DEPTNO =: V_DEPT OCH ROWNUM < 500 BESTÄLLA VID ENO;
" klar "

Svar : Referens-byracka

Det snabba svaret är dig egentligen kan inte göra det.

Det finns inte a långt som kontrollerar, ror gånget tillbaka i en markör om inte för fetch dem. när du hämtar dem, du kan inte nollställa markörbaksidaen till första ror.

Om queryen kör förhållandevis kvickt, du kan välja första ror för att se, om det finns en åtminstone ror.
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:
tappa bordlägger laxermedel tab1;
skapa bordlägger tab1 (rödingen col1 (1));

sätt in in i tab1 värderar (”a”);
sätt in in i tab1 värderar (”a”);
sätt in in i tab1 värderar (”a”);
begå;


skapa eller byt ut tillvägagångssättmyProc (som är inChar i röding, för outCur sys_refcursor ut)
är
	tmpChar röding (1);
börja

	--kontroll för data för vila av kodifiera
	börja
		välj ”x” in i tmpChar från tab1 var col1=inChar och rownum=1;
		undantag
			när NO_DATA_FOUND därefter
				raise_application_error (- 20002, ”inga data grundar.  Kan inte fortsätta. ”);
	avsluta;


	öppna outCur för vald col1 från tab1 var col1=inChar;


avsluta;
/,

visa fel


--testa using SQL*Plus-variabler
var-myCurrefcursor

execmyProc (”a”: myCur);

tryckmyCur

execmyProc (”b”: myCur);
Andra lösningar  
 
programming4us programming4us