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:
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE='PROCEDURE'
J'ai essayé ceci, la compilation déroule bien, mais il y a des erreurs quand je lance la procédure:
Merci d'avance.
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;
Partager