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

Langage SQL Discussion :

Spliter une valeur


Sujet :

Langage SQL

Vue hybride

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Par défaut Spliter une valeur
    Bonjour,
    je suis sous Oracle 10g,

    Je souhaite recuperer plusieur valeur d'une chaine de caractère, apres les recherches sur le net, je n'ai pas trouver ma solution.

    ma chaine en entrée :
    'valeur1,valeur2,valeur3'
    avec le nombre de valeur non fixe pour tout arranger.

    Mon idée est d'utiliser un curseur mais comment mettre specifier , comme separateur?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Par défaut
    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
     
    create or replace type split_tbl as table of varchar2(32767);
    /
    show errors;
     
    create or replace function split
    (
        p_list varchar2,
        p_del varchar2 := ','
    ) return split_tbl pipelined
    is
        l_idx    pls_integer;
        l_list    varchar2(32767) := p_list;
    AA
        l_value    varchar2(32767);
    begin
        loop
            l_idx := instr(l_list,p_del);
            if l_idx > 0 then
                pipe row(substr(l_list,1,l_idx-1));
                l_list := substr(l_list,l_idx+length(p_del));
     
            else
                pipe row(l_list);
                exit;
            end if;
        end loop;
        return;
    end split;
    A utiliser de la façon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from table(split('one,two,three'));
    Ca peut aider

    Ca fonctionne en Oracle 10g, j'ai eu des problemes de droits en Oracle 9.

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

Discussions similaires

  1. Spliter une valeur selon des mots spécifiques
    Par witch dans le forum Langage
    Réponses: 15
    Dernier message: 03/10/2008, 11h10
  2. Lire une valeur dans le registre
    Par John.s dans le forum C
    Réponses: 2
    Dernier message: 26/11/2003, 19h55
  3. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37
  4. Prendre une valeur dans la grappe XML
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 21/05/2003, 10h26
  5. Afficher une valeur du context
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 13
    Dernier message: 28/04/2003, 13h49

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