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 25/09/2008, 19h52   #1
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Par défaut Fonction stockée ou procédure stockée?

Salut,

Voilà j'ai besoin d'une procédure stockée sous ORACLE 10g qui me renvoie le résultat d'une requête :

Code :
1
2
 
SELECT C1, C2, C3 FROM MATABLE WHERE C1=parametre_entree;
Donc parametre_entree est le paramètre en entrée.
Une fonction car je souhaite que la fonction stockée me renvoie le nombre d'enregistrements retournés.

J'ai également besoin des valeurs des champs pour faire le traitement suivant :

Code :
1
2
3
4
 
FOR i = 1 TO NombreLigneRetournees
    valeur = valeur & C2(i)
Next i
Si j'ai en retour 3 lignes :

C1 C2 C3
0 1 2
1 2 4
4 4 5

Ma variable "valeur" contiendra donc : 124.

C'est un algo mais ça illustre un peu le problème.

Merci pour votre aide.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 19h29   #2
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
Bon je donne plus de précision, je cherche à récupérer le nombre de lignes d'une requête depuis une autre procédure :

PROC1 appelle PROC2 ou FUNCTION2 qui renvoie le résultat d'une requête SELECT et le nombre de lignes de la requête.

Comment faire en sorte d'écrire PROC2 ou FUNCTION2 pour obtenir le résultat escompté ?

J'espère que j'ai été plus clair ?
Merci.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 19h53   #3
Membre habitué
 
Inscription : mars 2002
Messages : 560
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 560
Points : 107
Points : 107
J'ai essayé d'écire ma procédure PROC2 mais j'obtiens des erreurs de compilation, quelqu'un voit-il pourquoi ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CREATE OR REPLACE PROCEDURE TEST_CURSEUR_1(c OUT c_client%ROWTYPE
)
IS
CURSOR c_client IS
SELECT C_CLIENT FROM CLIENT;
cu c_client%ROWTYPE;
BEGIN
   FOR cu IN c_client LOOP
   	   dbms_output.put_line(cu.C_CLIENT);
   END LOOP;
END TEST_CURSEUR;
/
Merci.
david71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 20h20   #4
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 975
Points : 3 975
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2008, 21h38   #5
Membre Expert
 
Inscription : août 2008
Messages : 1 276
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 276
Points : 1 936
Points : 1 936
Citation:
Envoyé par Jerome_Mtl Voir le message
Je dirais même pas besoin de déclarer cu quand on l'utilise dans un for.
Sinon fait des recherches sur pipelined et REF CURSOR, parce que ton OUT m'a l'air douteux.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h16.


 
 
 
 
Partenaires

Hébergement Web