Rechercher Articles Oracle SQL sur ce Site.
Loading
Les attributs d'un cursor sont des variables gérées lors de l'éxécution d'un ordre. Ils peuvent être testés afin de mofidier le
déroulement de bloc PL/SQL.
● %NOTFOUND = Il prend la valeur VRAI si la dernière commande FETCH n'a pas ramené de ligne.
● %FOUND = Il prend la valeur VRAI si la dernière commande FETCH a ramenè une ligne.
● %ROWCOUNT = Contient le nombre de lignes ramenées par la commande FETCH.
● %ISOPEN = Est utilisé pour déterminé si un curseur est ouvert ou fermé.
SET SERVEROUTPUT ON;
DECLARE
v_emp scott.emp%rowtype;
CURSOR c_emp IS
SELECT ename, job
FROM scott.emp
WHERE job = 'SALESMAN';
BEGIN
OPEN c_emp;
IF c_emp%ISOPEN =TRUE THEN
dbms_output.put_line('Curseur is OPEN');
END IF;
LOOP
FETCH c_emp INTO v_emp.ename, v_emp.job;
IF c_emp%NOTFOUND THEN
IF c_emp%ROWCOUNT = 0 THEN
dbms_output.put_line('Job = SALESMAN INNEXISTANT');
ELSE
dbms_output.put_line('Fin De Boucle, Nbr Enreg = ' || c_emp%ROWCOUNT);
END IF;
EXIT;
ELSIF c_emp%FOUND THEN
dbms_output.put_line('Name = '||v_emp.ename || ' Job = ' || v_emp.job);
END IF;
END LOOP;
CLOSE c_emp;
IF c_emp%ISOPEN = FALSE THEN
dbms_output.put_line('Curseur is CLOSE');
END IF;
END;
|
SQL> SET SERVEROUTPUT ON; SQL> DECLARE 2 v_emp scott.emp%rowtype; 3 CURSOR c_emp IS 4 SELECT ename, job 5 FROM scott.emp 6 WHERE job = 'SALESMAN'; 7 BEGIN 8 OPEN c_emp; 9 IF c_emp%ISOPEN =TRUE THEN 10 dbms_output.put_line('Curseur is OPEN'); 11 END IF; 12 13 LOOP 14 FETCH c_emp INTO v_emp.ename, v_emp.job; 15 IF c_emp%NOTFOUND THEN 16 IF c_emp%ROWCOUNT = 0 THEN 17 dbms_output.put_line('Job = SALESMAN INNEXISTANT'); 18 ELSE 19 dbms_output.put_line('Fin De Boucle, Nbr Enreg = ' || c_emp%ROWCOUNT); 20 END IF; 21 EXIT; 22 ELSIF c_emp%FOUND THEN 23 dbms_output.put_line('Name = '||v_emp.ename || ' Job = ' || v_emp.job); 24 END IF; 25 END LOOP; 26 CLOSE c_emp; 27 IF c_emp%ISOPEN = FALSE THEN 28 dbms_output.put_line('Curseur is CLOSE'); 29 END IF; 30 END; 31 / Curseur is OPEN Name = ALLEN Job = SALESMAN Name = WARD Job = SALESMAN Name = MARTIN Job = SALESMAN Name = TURNER Job = SALESMAN Fin De Boucle, Nbr Enreg = 4 Curseur is CLOSE PL/SQL procedure successfully completed. |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Oracle PL-SQL Structure d'un BLOC • Oracle PL-SQL SELECT INTO • Oracle PL-SQL Variables %TYPE %ROWTYPE • Oracle PL-SQL Open Fetch Close Cursor |