Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 28/01/2008, 10h29   #1
Membre à l'essai
 
Inscription : avril 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 175
Points : 20
Points : 20
Par défaut tester une fonction

bonjour a tous ,


j'ai crée une fonction qui renvoi un nombre (qunatité stock) pour un produit donné

elle recoit en entré un varchar et elle retourne un nombre

qnt_stock ( idProd);

qualqun connai la syntaxe pour tester cette fonction avant de l'utiliser dans un trigger ?

merci d'avance de votre aide
k-eisti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 10h37   #2
Responsable Business Intelligence
 
Avatar de kalyparker
 
Femme
Consultant en Business Intelligence
Inscription : janvier 2007
Messages : 1 192
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : janvier 2007
Messages : 1 192
Points : 2 564
Points : 2 564
Bonjour,

Un petit select ... from dual devrait faire l'affaire :
Code :
SELECT qnt_stock(5) FROM dual;
voilou
kalyparker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 10h57   #3
Membre à l'essai
 
Inscription : avril 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 175
Points : 20
Points : 20
le resultat n'est pas bon , peut être y'a une erreur dans ma fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
CREATE OR REPLACE FUNCTION Qnt_Stock 
         ( id_prod IN produit.idproduit%type ) RETURN number
 
IS total_Stock produit.stockprod%type ;
 
begin
 
SELECT stockprod INTO total_Stock FROM produit  WHERE idproduit = id_prod;
RETURN (total_stock);
end;
/

avec le script suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
CREATE TABLE produit
(idproduit varchar2(5) PRIMARY KEY,
desprod varchar(50),
prixprod number(8,2),
stockprod number(4)
);
 
 
INSERT INTO produit VALUES ('P1','',50,50);
INSERT INTO produit VALUES ('P2','',500,0);



je doit avaoir pour les commandes :

Code :
1
2
3
4
5
6
 
 
SELECT qnt_stock('p1') FROM dual;
-- le resultat suivant : 50
SELECT qnt_stock('p2') FROM dual;
-- le resultat suivant : 50
mais sur oracle j'ai la réponse suivante :

Code :
1
2
3
4
5
6
7
8
9
10
 
 
 
SQL> SELECT qnt_stock('p1') FROM dual;
 
QNT_STOCK('P1')
---------------
 
 
SQL>
merci de votre aide
k-eisti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 11h00   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
bah oui, tu passes le paramètre ne minuscule

Code :
1
2
3
4
5
SQL>SELECT qnt_stock('P1') FROM dual;
 
QNT_STOCK('P1')
---------------
             50
Enfin, si la fonction est si simple tu peux facilement t'en passer
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2008, 11h05   #5
Membre à l'essai
 
Inscription : avril 2007
Messages : 175
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 175
Points : 20
Points : 20
merci beaucoup
k-eisti 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 12h39.


 
 
 
 
Partenaires

Hébergement Web