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

PL/SQL Oracle Discussion :

Rajouter une suite de nombres dans une colonne


Sujet :

PL/SQL Oracle

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Par défaut Rajouter une suite de nombres dans une colonne
    ..*/

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Est-ce que tu ne cherches pas à recréer la fonction LISTAGG ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Par défaut
    je ne sais pas a quoi sert cette fonction, je suis entrain d'apprendre le langage malheuresement :/
    si je devais utilisé cette fonction cela aurais donnée quoi ?

    il faut savoir que je dois comprarer a chaque fois les id (si c'est le même, on recupere juste son nombre et on le met à la suite des autres nombre (si il y en a) dans la colonne nombre de la table resultat séparé des virgules

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    La requête suivante devrait retourner ma liste que tu attends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT MIN(id)  AS id
        ,   user_name
        ,   LISTAGG(nombre, ';') WITHIN GROUP (ORDER BY nombre)
    FROM    stockage
    GROUP BY user_name
    ORDER BY id
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Par défaut
    merci, celle ci marche effectivement mais si je dois remplir la table resultat avec les données de la table delta etant donné qu'elle est vide tout en utilisant le meme principe de si il y a 2 id qui sont pareil on recupere juste son nombre et on le rajoute l'un apres l'autre .. (du genre au depart ma table resultat et vide, je vais dans la table delta je recupere une donne je l'insere dans la table resultat, 2e fois je vais et je vois que c'est le meme idee que celle d'avant, a ce moment la je recupere juste son nombre au lieu de réecrire les informations de l'id qu'on a) et si c'est un id different de celle qu'on a dans la table resultat on insere tout simplement. il faut quel requête pour ça ?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    Regarde ce que peut faire pour toi la commande MERGE...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 16
    Par défaut
    Merci, Je me suis documenter pour le MERGE et comme requette j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT MIN(id)  AS id
        ,   user_name
        ,   LISTAGG(nombre, ';') WITHIN GROUP (ORDER BY nombre)
    FROM    delta
    GROUP BY user_name
    ORDER BY id;
     
     MERGE INTO delta e
      USING resultat ne ON (
        e.id = ne.id or ne is empty
      )
      WHEN NOT MATCHED THEN
        INSERT (e.id, e.user_name, e.nombre)
        VALUES (ne.id,ne.user_name,ne.nombre);
    et j'ai comme erreur :

    Error at Command Line : 10 Column : 21
    Error report -
    SQL Error: ORA-00904: "NE": invalid identifier
    00904. 00000 - "%s: invalid identifier"
    *Cause:
    *Action:
    Help please

  8. #8
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Je ne vois pas très bien ce que vous essayez d'accomplir. Voilà juste un exemple pour mettre vos numéros dans un Varray à partir des données opérationnelles. Il est toute à fait possible que créer juste une vue pour cela pourriez vous suffire.
    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
    37
    38
    39
    40
    41
    42
     
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 
     
    SQL> 
    SQL> Drop table t_tab
      2  /
    Table dropped
    SQL> Create table t_tab (
      2    id                int primary key,
      3    user_name         varchar2(10) not null,
      4    nombre            int
      5  )
      6  /
    Table created
    SQL> Insert All
      2    Into t_tab values (1,'bibi',5)
      3    Into t_tab values (2,'roger',6)
      4    Into t_tab values (3,'bibi', 7)
      5    Into t_tab values (4,'julion', 3)
      6    Into t_tab values (5,'bibi',12)
      7    Select *
      8      From dual
      9  /
    5 rows inserted
    SQL> Commit
      2  /
    Commit complete
    SQL> Create Or replace Type my_va20 As Varray(10) Of Number(10)
      2  /
    Type created
    SQL> Select user_name,
      2         cast(collect(nombre order by id) as my_va20) Tableau
      3    From t_tab
      4   Group By user_name
      5  /
    USER_NAME  TABLEAU
    ---------- -------
    bibi       <Object
    julion     <Object
    roger      <Object
     
    SQL>

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/01/2011, 09h40
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. Recherche d'une suite de nombre dans un String
    Par Diablo_22 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 11/09/2008, 13h15
  4. [RegEx] Recherche dans une suite de nombres
    Par alibab dans le forum Langage
    Réponses: 11
    Dernier message: 20/09/2007, 08h04
  5. afficher une suite de nombres dans une string
    Par hysah dans le forum C++
    Réponses: 4
    Dernier message: 27/04/2006, 18h51

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