Bonjour à tous,

J'essaye de réaliser une fonction qui permettrait, pour le nom d'une table donnée en entrer, fournir l'ensemble du contenu de la table.
Pour le moment j'ai le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE
  tabl VARCHAR(20) := 'table1'; --------> Il n'aime pas ceci, 
  CURSOR contenu IS SELECT * FROM tabl; -------> Par contre quand je met table1 après le FROM, tout fonctionne
  tuple contenu%ROWTYPE;  
BEGIN
  OPEN contenu;
  FETCH contenu INTO tuple;
  WHILE contenu%FOUND LOOP
    DBMS_OUTPUT.PUT_LINE(tuple.nom);
    FETCH contenu INTO tuple;
  END LOOP;
  CLOSE contenu;
END;
Mon but est donc de créer une procédure de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE OR REPLACE PROCEDURE CONTEN (tabl VARCHAR) IS 
  CURSOR contenu IS SELECT * FROM tabl; 
  tuple contenu%ROWTYPE;  
BEGIN
  OPEN contenu;
  FETCH contenu INTO tuple;
  WHILE contenu%FOUND LOOP
    DBMS_OUTPUT.PUT_LINE(tuple.nom);
    FETCH contenu INTO tuple;
  END LOOP;
  CLOSE contenu;
END;
J'ai essayé cela mais ça ne fonctionne pas. Pourriez vous m'indiquer comment avancer?

Merci à vous.