Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/06/2007, 14h40   #1
Membre habitué
 
Inscription : juillet 2004
Messages : 254
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 254
Points : 114
Points : 114
Par défaut PL/SQL dynamique - Alias de fonctions

Bonjour

Est il possible de faire non pas du sql mais du PL/Sql dynamique ?

Exemple : j'ai écris une proc que je veux pouvoir appeler indifféremment en étant connecté à la base (SqlPlus) ou bien par web (mod_plsql). Dans les 2 cas, les sorties ne sont pas les memes, respectivement dbms_output.* et Htp.*.

J'ai un paramètre qui me permet de savoir par quel moyen la proc a été appelée. Mais j'en ai marre de faire le test à chaque sortie genre
Code :
1
2
3
4
5
6
 
IF p_sortie='HTTP' Then 
   Htp.p('resultat'); 
Else 
   dbms_output.put_line('resultat'); 
End IF;
Il y a t-il un moyen quelconque de définir une fonction 'Sortie' à laquelle je donnerai une bonne fois pour toute la "valeur" dbms_output.put_line ou Htp.p et qui me permettrait dans le reste de mon programme d'appeler simplement Sortie('resultat') ?

Merci à vous
L.
Loko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 15h11   #2
Membre éprouvé
 
Avatar de argoet
 
Inscription : mai 2002
Messages : 535
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 535
Points : 461
Points : 461
Quelque chose qui ressemble à ceci ?
Code :
1
2
3
4
5
6
7
8
CREATE OR REPLACE Procedure Sortie (P_sortie Varchar2 , V_Resultat Varchar2) IS
Begin
   IF P_sortie='HTTP' Then
      Htp.p(V_resultat);
   Else
      dbms_output.put_line(V_resultat);
   End IF;
End Sortie;
__________________
Signé : Capitaine Jean-Luc Picard
argoet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 15h20   #3
Membre habitué
 
Inscription : juillet 2004
Messages : 254
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 254
Points : 114
Points : 114
Bonjour Argoet

Euh.. oui, effectivement, c'est tout bête, je n'y avais pas pensé !

J'étais en train d'imaginer un truc "à la python" ou "à la javascript" genre
Code :
1
2
3
4
 
IF ... Then my_fonction := htp.p(); 
Else my_fonction := dbms_output.put_line(); 
End IF;
Merci à toi !
Loko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h14.


 
 
 
 
Partenaires

Hébergement Web