Code source d'une procédure.
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:
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:
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.