Rechercher : dans
Par :

La fonction ne raméne aucune valeur

Dernière réponse le 15 jan 2009 à 16:47:42 bouazizi06, le 15 jan 2009 à 14:04:49 
 Signaler ce message aux modérateurs

Bonjour,


j'ecrits une fonction pl/sql sur oracle9 , je rencontre cette erreur:

ORA-06503: PL/SQL : La fonction ne ramène aucune valeur

n'hesiter pas de me donné une idé

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « la fonction ne raméne aucune valeur » dans :
[VBA] Fonction qui retourne la couleur active d'une MFC VoirCette fonction retourne la valeur du format actif d'une mise en forme conditionnelle. Avec la fonction de la démo, deux valeurs peuvent êtres retournées. Mode = 0 : retourne la valeur de Interior.ColorIndex Mode = 1 : retourne la valeur de...
VBScript - Les fonctions mathématiques VoirLes fonctions mathématiques Fonction Description Abs(number) Retourne la valeur absolue d'un nombre. Atn(number) Retourne l'arc-tangente d'un...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Constructeurs et destructeurs VoirConstructeurs et destructeurs Pour créer une instance de classe (un objet), le programme a besoin d’une fonction C++ spécifique nommée constructeur qui ne renvoie aucune valeur mais peut se charger d’initialiser les variables membres. Si vous ne la...

1

dna.factory, le 15 jan 2009 à 14:21:38

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. Je suis là pour tenter de dépanner, pas pour tenter de déchi­ffrer le message
donc si vous voulez etre dépanné, soyez clair et précis.

Répondre à dna.factory

2

bouazizi06, le 15 jan 2009 à 14:59:41

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;

Répondre à bouazizi06

3

dna.factory, le 15 jan 2009 à 15:06:30

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
Je suis là pour tenter de dépanner, pas pour tenter de déchi­ffrer le message
donc si vous voulez etre dépanné, soyez clair et précis.

Répondre à dna.factory

4

bouazizi06, le 15 jan 2009 à 15:20:34

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.

Répondre à bouazizi06

5

dna.factory, le 15 jan 2009 à 16:31:28

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) Je suis là pour tenter de dépanner, pas pour tenter de déchi­ffrer le message
donc si vous voulez etre dépanné, soyez clair et précis.

Répondre à dna.factory

6

 bouazizi06, le 15 jan 2009 à 16:47:42

Je ne peux pas faire une procédure, il faut étre une fonction.

merci pour cette discution, et j'essayera de trouver une solution

Répondre à bouazizi06