Bonjour,

Je voudrais savoir comment mettre une instruction SQL PLUS dans un block PL/SQL ?.

Je m'explique:
En mode SQL PLUS, pour afficher le code source d'une proc, j'utilise la syntaxe suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT OBJECT_NAME 
          FROM USER_OBJECTS 
          WHERE OBJECT_TYPE='PROCEDURE'
Avec cette instruction, je pourrai afficher le code source d'une procédure; mais je veux utiliser ce code dans une procédure paramétrée que je donne comme paramètre un objet (soit une procédure ou fonction).

J'ai essayé ceci, la compilation déroule bien, mais il y a des erreurs quand je lance la procédure:
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
CREATE OR REPLACE PROCEDURE AFF_CODE_SOURCE(NOM_OBJET IN VARCHAR2)
IS
 
TXTOBJET VARCHAR2(30);
AUCUNE EXCEPTION;
 
BEGIN
 
   SELECT TEXT INTO TXTOBJET FROM USER_SOURCE
   WHERE  NAME=NOM_OBJET;
 
EXCEPTION
WHEN AUCUNE THEN 
   DBMS_OUTPUT.PUT_LINE(' ERREUR ... AUCUNE FONCTION OU PROCÉDURE N''A ÉTÉ CRÉE ');
 
END AFF_CODE_SOURCE;
 
-- BLOCK PL/SQL
BEGIN
-- APPEL DE LA PROCÉDURE
   AFF_CODE_SOURCE('REVENU_DEPT');
END;
Merci d'avance.