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

SQL Firebird Discussion :

parcourir un varchar dans une PS


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Par défaut parcourir un varchar dans une PS

    bonjour,

    quelqu'un a t'il une idée pour parcourir les valeus d'un varchar passéee en parametre dans une PS?
    j'ai essayé de cette façon,

    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
     
    SET TERM ^ ;
     
    CREATE OR ALTER PROCEDURE NEW_PROCEDURE (
        tbl varchar(100) character set ascii)
    as
    declare variable valeur char(10);
    declare variable x integer;
    begin
      /* Procedure Text */
      x=0;
      while (x<2) do
        begin
         x=x+1;
         valeur=:tbl[x];
         INSERT INTO
                engin_concerne_par_fiche_rex
                (
                no_engin,
                numfiche_rex
                )
         VALUES
               (
               :valeur,
               24
               );
         end
    end^
     
    SET TERM ; ^
    j'ai le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Invalid token.
    Dynamic SQL Error.
    SQL error code = -104.
    Token unknown - line 12, column 17.
    [.

    merci d'avance
    a+

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    Citation Envoyé par CharleLéo Voir le message

    bonjour,

    quelqu'un a t'il une idée pour parcourir les valeus d'un varchar passé en parametre dans une PS?
    en utilisant la fonction SUBSTRING
    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
     
    SET TERM ^ ;
     
    CREATE OR ALTER PROCEDURE NEW_PROCEDURE (
        tbl varchar(100) character set ascii)
    as
    declare variable valeur char(10);
    declare variable x integer;
    begin
      /* Procedure Text */
      x=0;
      while (x<2) do
        begin
         x=x+1;
         valeur= SUBSTRING(tbl from x for 1);
         INSERT INTO
                engin_concerne_par_fiche_rex
                (
                no_engin,
                numfiche_rex
                )
         VALUES
               (
               :valeur,
               24
               );
         end
    end^
     
    SET TERM ; ^

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Par défaut parcourir un varchar
    lol:

    meric à evarisna pour sa piste.

    j'ai utiliser la solution de evarisnea, en ajoutant des petits truc :

    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
     
    SET TERM ^ ;
     
    CREATE OR ALTER PROCEDURE ESSAI (
        tbl varchar(200))
    returns (
        val char(5))
    as
    declare variable x integer;
    declare variable y integer;
    begin
      /* Procedure Text */
      x=0;
      y=0;/* initialisation de y */
        while (y<>2) do  /* nombre de valeur de 5 caractere à lire */
        begin
         val=substring(tbl from x+1 for x+5);
         x=x+6;
         y=y+1;
         suspend;
        end
    end^
    le varchar en entrée contient ('81501,81503,81507').
    à l'execution j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Arithmetic overflow or division by zero ooccured
    arithmetic exception,numeric overflox or string truncation
    at procedure ESSAI ligne 14 col 6
    et comme résultat
    val
    81501
    null

    SI je mets la valeur 1 à l'initialisation de y, alors là je n'ai pas d'erreur, et comme résultat je n'ai que 81501.

    je comprends pas pourquoi!

    a+


  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    La syntaxe de SUBSTRING est:

    SUBSTRING(<string> FROM <pos> FOR <length>)
    Donc change ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val=substring(tbl FROM x+1 FOR 5);
    @+ Claudius

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 251
    Par défaut


    Merci Claudius,

    ça fait 2 jours que je galère...

    A+

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

Discussions similaires

  1. Attribut VARCHAR dans une table
    Par Patrice Henrio dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/03/2012, 14h45
  2. Parcourir un dom dans une page jsp
    Par zemzoum89 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/12/2010, 14h58
  3. Réponses: 1
    Dernier message: 21/11/2009, 09h33
  4. probléme pour parcourir un tableau dans une JSP
    Par nightcyborg dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/12/2007, 18h28
  5. [Forms 6i] Parcourir un block dans une PLL
    Par macben dans le forum Forms
    Réponses: 2
    Dernier message: 28/09/2005, 11h13

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