Comment executer une fonction ?

Comment executer une fonction ? - SQL/NoSQL - Programmation

Marsh Posté le 22-12-2006 à 09:16:11    

Tout est dans le titre ! "Comment executer une fonction ?"
 
j'ai fais quelques recherches:
 

Code :
  1. SELECT nom_fonction()


ou

Code :
  1. EXPLAIN ANALYZE SELECT nom_fonction()


 
Mais j'ai respectivement ces erreurs
 

Code :
  1. ERREUR à la ligne 1 :
  2. ORA-00923: mot-clé FROM absent à l'emplacement prévu


et

Code :
  1. ERREUR à la ligne 1 :
  2. ORA-00905: mot-clé absent


 
Aprés j'ai essayé de faire EXECUTE comme pour les procédures, mais... ca ne marche pas !
:|
 
 
 
Si quelqu'un a la solution, je ne suis pas contre ! (D’ailleurs, je n’arrive pas à comprendre l'intérêt d'une procédure puisqu'on peut créer des fonctions qui ne retournent rien). Je m'excuse si ces questions peuvent vous sembler stupide, je débute !
 
Ha, j'oubliais mon code (de la fonction à executer):
 

Code :
  1. CREATE OR REPLACE FUNCTION pilote_info(idpilote IN number) return pilote%ROWTYPE AS
  2. piloterow pilote%rowtype;
  3. BEGIN
  4. SELECT pl#,plnom,dnaiss,adr,tel,sal INTO piloterow FROM pilote WHERE pl#=idpilote;
  5. RETURN (piloterow);
  6. END;
  7. /


 
Merci d'avances pour vos réponses  :)


Message édité par jonathanb2 le 22-12-2006 à 09:24:47

---------------
Beyond The Noise
Reply

Marsh Posté le 22-12-2006 à 09:16:11   

Reply

Marsh Posté le 22-12-2006 à 11:29:40    

Bon j'ai trouvé des infos
pour une fonction simple qui renvoie un nombre c'est:
SELECT nom_fonction FROM DUAL;
le seul problême, c'est qu'ici je en renvoie aucun nombre !


---------------
Beyond The Noise
Reply

Marsh Posté le 22-12-2006 à 11:34:40    

C'est quoi comme fonction ?

Reply

Marsh Posté le 22-12-2006 à 11:48:29    

from dual quand même, si tu es sous oracle.
La clause from est obligatoire.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 13:13:16    

select pilote_info(29) from dual;
 
ERREUR à la ligne 1 :
ORA-00902: type de données non valide
 
Alors qu'avec des fonctions simple qui renvoient juste un nombre je n'ai pas d'erreurs !
Et oracle me dis que la fonction est correctement créée !
 

Citation :

C'est quoi comme fonction ?


j'ai indiqué la fonction dans mon 1er message ! Si ce n'est pas ca que tu demandes, dsl je comprends pas ta question :-s !


Message édité par jonathanb2 le 22-12-2006 à 13:19:01

---------------
Beyond The Noise
Reply

Marsh Posté le 22-12-2006 à 13:17:55    

euh, elle a quel intérêt, ta fonction, là, en fait?[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 13:27:19    

La fonction demande comme argument l'id d'un pilote ! et celle ci va retourner toutes les infos du pilote (c'est à dire la ligne entière de la table qui correspond au pilote demandé) !
 
EDIT: en fait c'est une fonction qui liste !  :p


Message édité par jonathanb2 le 22-12-2006 à 13:31:08

---------------
Beyond The Noise
Reply

Marsh Posté le 22-12-2006 à 13:32:24    

j'entends bien, mais pourquoi ne pas faire directement ton select?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 13:42:42    

en fait c'est un projet que je dois rendre !
et mon prof m'a demandé une "FONCTION" qui liste !
si tu as une autre solution je suis pas contre
(mais je pige tjrs pas pourquoi ca marche pas)
 
:)


---------------
Beyond The Noise
Reply

Marsh Posté le 22-12-2006 à 14:09:55    

jonathanb2 a écrit :

en fait c'est un projet que je dois rendre !
et mon prof m'a demandé une "FONCTION" qui liste !


ah, alors démerde-toi.[:dawa]
On n'est pas là pour faire tes devoirs...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 22-12-2006 à 14:09:55   

Reply

Marsh Posté le 22-12-2006 à 14:46:07    

haha
je pense que le problême est au niveau du DUAL !
le DUAL ne peut pas afficher qu'en bloc (string, int...) mais pas tout à la fois ! et la c'est ce que je lui demande !
 
enfin merci quand même ! ;)


---------------
Beyond The Noise
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed