IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Informix Discussion :

Erreur de syntaxe sur fonction


Sujet :

Informix

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 30
    Par défaut Erreur de syntaxe sur fonction
    Salut tout le monde,
    Bon voila mon problème, j'essaie de faire une fonction qui recherche la position d'une chaine dans une autre chaine,
    Il me semble avoir respecter la syntaxe informix mais lorsque je la compile, j'ai une erreur de syntaxe sur :
    )
    RETURNS integer;
    J'ai essayé avec RETURNING mais ca ne fonctionne pas non plus.
    Si vous voyez ce qui cloche merci de me le signaler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     -- ---------------------------------------------------
    -- Fonction MG_FU_Instr
    -- NE, 24/04/2008
    -- Paramètres :
    -- Ps_Chaine : Chaine dans laquelle on recherche
    -- Ps_ChaineRecherchee : Chaine recherchée
    -- ----------------------------------------------------------
    -- Recherche de la position de la chaine Ps_ChaineRecherchee
    -- dans la chaine Ps_Chaine
    -- Retourne 0 si la chaine n'a pas ete trouvee
     
    CREATE FUNCTION MG_FU_Instr(
      Ps_Chaine VARCHAR,
      Ps_ChaineRecherchee VARCHAR,
      Pi_NbOccurence integer DEFAULT 1 
    ) 
      RETURNS integer;
     
    DEFINE Vi_Indice, Vi_Pos, Vi_Taille, Vi_TailleRecherchee integer;
     
    LET Vi_TailleChaineRecherchee = LENGHT( Ps_ChaineRecherchee);
    LET Vi_Taille = LENGHT( Ps_Chaine );
     
    IF ( Vi_Taille = 0 ) or ( Vi_TailleChaineRecherchee = 0 ) THEN RETURN 0; END IF;
     
    LET Vi_Pos = 0;
    FOR Vi_Indice = 1 TO Vi_Taille
      IF SUBSTR( Ps_Chaine, Vi_Indice, Vi_TailleChaineRecherchee ) = Ps_ChaineRecherchee THEN
        LET Vi_Pos = Vi_Indice;
        EXIT FOR;
      END IF;
    END FOR;
     
    RETURN Vi_Pos;
     
    END FUNCTION;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 30
    Par défaut
    bon je me suis débrouillé et j'ai juste changé le mot clé FUNCTION par PROCEDURE et Paf ca fonctionne... non mais c'est quoi cette histoire, qu'on ne me dise pas qu'informix c'est super!!!

  3. #3
    Membre expérimenté Avatar de blackstreet
    Inscrit en
    Avril 2004
    Messages
    304
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 304
    Par défaut
    Bonjour,

    désolé pour ce retard, mais c'est juste maintenant que j'ai eu un peu de temps.

    Bon, mon ami, j'attire ton attention à une chose :
    - Dans la partie déclaration, tu a déclaré la variable : Vi_TailleRecherchee integer.
    Mais tu ne l'a jamais utilisé.
    En revanche, tu utilise pour ton traitement une variable du nom : Vi_TailleChaineRecherchee. Bizzarre!!!

    Voila ce que j'ai fais : j'ai modifié la variable de travail que tu utilise par Vi_TailleRecherchee et la function s'est bien exécuté.

    D'ailleurs, ça fais un peu bizzarre qu'on changeant vers procedure, ça a marché pour toi.

    Vérifie STP. (et surtout , pas d'injure pour Informix).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] erreur syntaxe sur fonctions
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 06/05/2010, 15h14
  2. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53
  3. Erreur de syntax sur JOIN
    Par helje dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/03/2006, 17h36
  4. Erreur de syntaxe sur la création d'une vue.
    Par cgougeon dans le forum Installation
    Réponses: 3
    Dernier message: 09/09/2005, 11h00
  5. erreur C2664 : pointeur sur fonction
    Par hiko-seijuro dans le forum C++
    Réponses: 2
    Dernier message: 26/07/2005, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo