Bonjour à tous,
est ce qu'on peut avoir le code pl/sql suivant:
cursor cc (param varchar2)
is select xxx from param;
le paramètre du curseur est la table à partir de laquelle on veut faire une sélection.
Merci c trop urgent
Bonjour à tous,
est ce qu'on peut avoir le code pl/sql suivant:
cursor cc (param varchar2)
is select xxx from param;
le paramètre du curseur est la table à partir de laquelle on veut faire une sélection.
Merci c trop urgent
Bonjour,
Vous pouvez essayer ca :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 CREATE OR REPLACE PACKAGE test_pack IS TYPE rcur IS REF CURSOR; FUNCTION test_func (tab_name user_tables.table_name%TYPE) RETURN rcur; END; / CREATE OR REPLACE PACKAGE BODY test_pack IS FUNCTION test_func (tab_name user_tables.table_name%TYPE) RETURN rcur IS return_cursor rcur; BEGIN OPEN return_cursor FOR 'select * from ' || tab_name; RETURN return_cursor; END; END; /
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 > variable cur REFCURSOR; > exec :cur :=test_pack.test_func('EMP'); PL/SQL procedure successfully completed. > print cur; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10
Merci pour votre réponse , mais je pense pas que c'est le cas dont je parle.
Merci
Bonjour à tous,
je suis débutant en PL/SQL, j'ai une procédure stockée dans laquelle j'utilise un curseur. J'aime définir ce dernier comme suit:
CURSOR cur(param varchar2) is
select * from param.
J'arrive pas à instancié le cursor et à chaque fois il m'affiche une erreur. J'aime que mon paramètre s'affiche au niveau de la clause FROM.
Merci c'est trés urgent.
Vous ne pouvez pas le gérer de cette façon-là. Inspirez-vous de ce qu'a écrit Fatsora:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 DECLARE TYPE rcur IS REF CURSOR mon_curseur rcur; BEGIN OPEN mon_curseur FOR 'select * from ' || param; ..... traitement du curseur END;
Bonjour,
Comment faire le fetch dans une variable qui stocke tous les enregistrements du resultat de la requete
ex:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 declare vl_variable return_cursor%rowtype; begin LOOP FETCH return_cursor in vl_variable EXIT WHEN return_cursor%NOTFOUND; END LOOP; CLOSE return_cursor; end;
Partager