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

  1. #1
    Membre régulier
    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
    Points : 118
    Points
    118
    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+

    windows 10 / DEBIAN 7.9 / Etc...

  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
    Points : 4 384
    Points
    4 384
    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 régulier
    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
    Points : 118
    Points
    118
    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+


    windows 10 / DEBIAN 7.9 / Etc...

  4. #4
    Expert éminent sénior
    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 : 61
    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
    Points : 10 008
    Points
    10 008
    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 régulier
    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
    Points : 118
    Points
    118
    Par défaut


    Merci Claudius,

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

    A+

    windows 10 / DEBIAN 7.9 / Etc...

+ 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, 13h45
  2. Parcourir un dom dans une page jsp
    Par zemzoum89 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/12/2010, 13h58
  3. Réponses: 1
    Dernier message: 21/11/2009, 08h33
  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, 17h28
  5. [Forms 6i] Parcourir un block dans une PLL
    Par macben dans le forum Forms
    Réponses: 2
    Dernier message: 28/09/2005, 10h13

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