La fonction ne raméne aucune valeur
Fermé
bouazizi06
Messages postés
14
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2009
-
15 janv. 2009 à 14:04
elmahdi - 14 janv. 2010 à 10:51
elmahdi - 14 janv. 2010 à 10:51
A voir également:
- Ora-06503
- Fonction si et - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
2 réponses
dna.factory
Messages postés
25254
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
4 octobre 2024
1 612
15 janv. 2009 à 14:21
15 janv. 2009 à 14:21
au hasard je dirais que ta fonction (une fonction doit obligatoirement retourner une et une seule valeur, par opposition à une procédure qui peut en retourner aucune ou plusieurs) ne ramène aucune valeur alors qu'elle devrait en ramener une.
Après, le message d'erreur est peut-etre codé le fourbe.
Après, le message d'erreur est peut-etre codé le fourbe.
bouazizi06
Messages postés
14
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2009
15 janv. 2009 à 14:59
15 janv. 2009 à 14:59
exécuse moi parce que je te donne le message mal rédiger
à propos le probléme je ne vois pas que la fonction ne retourne rien, voici le code :
funcion f1 ( var1 in varchar2, var2 in varchar,.......var36 in varchar2) return integer is
begin
varlocal tab1.ch1%type;
insert into tab1( ch1,.......ch36)
values( var1,.............var21)returning ch1 into varlocal
insert into tab2(ch11, ...ch14)
values(var11,......varlocal);
return 0;
end f1;
à propos le probléme je ne vois pas que la fonction ne retourne rien, voici le code :
funcion f1 ( var1 in varchar2, var2 in varchar,.......var36 in varchar2) return integer is
begin
varlocal tab1.ch1%type;
insert into tab1( ch1,.......ch36)
values( var1,.............var21)returning ch1 into varlocal
insert into tab2(ch11, ...ch14)
values(var11,......varlocal);
return 0;
end f1;
dna.factory
Messages postés
25254
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
4 octobre 2024
1 612
15 janv. 2009 à 15:06
15 janv. 2009 à 15:06
mes souvenirs datent un peu, et je ne connais pas ce langage, mais quel est l'intéret d'une fonction qui retourne juste 0
dans ce cas, autant utiliser le chiffre directement
je pense qu'ici tu as besoin d'une procédure, pour retourner toutes les valeurs modifiées
dans ce cas, autant utiliser le chiffre directement
je pense qu'ici tu as besoin d'une procédure, pour retourner toutes les valeurs modifiées
bouazizi06
Messages postés
14
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2009
>
dna.factory
Messages postés
25254
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
4 octobre 2024
15 janv. 2009 à 15:20
15 janv. 2009 à 15:20
funcion f1 ( var1 in out varchar2, var2 in varchar,.......var36 in varchar2) return integer is
begin
varlocal tab1.ch1%type;
insert into tab1( ch1,.......ch36)
values( nvl(var1, '*'),.............var21)returning ch1 into var1
insert into tab2(ch11, ...ch14)
values(var11,......var1);
return 0;
end f1;
ici nvl(var1, '*') sivar1 null alors var1 est générer automatiqument par la base de donné, il lui donne un valeur de type varchar, et je veux récupérer ce code et l'inserer dans la table tab2.
begin
varlocal tab1.ch1%type;
insert into tab1( ch1,.......ch36)
values( nvl(var1, '*'),.............var21)returning ch1 into var1
insert into tab2(ch11, ...ch14)
values(var11,......var1);
return 0;
end f1;
ici nvl(var1, '*') sivar1 null alors var1 est générer automatiqument par la base de donné, il lui donne un valeur de type varchar, et je veux récupérer ce code et l'inserer dans la table tab2.
dna.factory
Messages postés
25254
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
4 octobre 2024
1 612
>
bouazizi06
Messages postés
14
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2009
15 janv. 2009 à 16:31
15 janv. 2009 à 16:31
je ne connais pas les bases de données et autres, mais si ça fonctionne comme les autres langage, je trouve surprenant qu'il soit possible de modifier les infos de la base de données avec une fonction
essaye de remplacer cette fonction par une procédure (si c'est possible avec oracle)
essaye de remplacer cette fonction par une procédure (si c'est possible avec oracle)
bouazizi06
Messages postés
14
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2009
>
dna.factory
Messages postés
25254
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
4 octobre 2024
15 janv. 2009 à 16:47
15 janv. 2009 à 16:47
je ne peux pas faire une procédure, il faut étre une fonction.
merci pour cette discution, et j'essayera de trouver une solution
merci pour cette discution, et j'essayera de trouver une solution
elmahdi
>
bouazizi06
Messages postés
14
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2009
14 janv. 2010 à 10:51
14 janv. 2010 à 10:51
salut,
le message d'erreur, lier a votre select qui retourn rien, pour éviter ce problème il faut pensser a gerer les exception : ajouter juste avant la fin de la fonction
Exception
When No_data_found Then
Dbms_output.Put_line('Erreur 1');
When Others Then
Dbms_output.Put_line('Erreur 2');
le message d'erreur, lier a votre select qui retourn rien, pour éviter ce problème il faut pensser a gerer les exception : ajouter juste avant la fin de la fonction
Exception
When No_data_found Then
Dbms_output.Put_line('Erreur 1');
When Others Then
Dbms_output.Put_line('Erreur 2');