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*Loader Oracle Discussion :

[SQL-LOADER, 9i] Incrémentation d'une séquence à travers SQL LOADER


Sujet :

SQL*Loader Oracle

  1. #1
    Ito
    Ito est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Points : 35
    Points
    35
    Par défaut [SQL-LOADER, 9i] Incrémentation d'une séquence à travers SQL LOADER
    Bonjour,

    Je charge une table avec SQL LOADER et je voudrais que lors du chargement, une séquence soit incrémentée pour stocker le numéro de ligne. Est-il possible de le faire, si oui comment ?

    Merci d'avance.

  2. #2
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    c'est possible : va faire un tour ici :
    http://www.developpez.net/forums/sho...d.php?t=263951
    et à l'avenir
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  3. #3
    Ito
    Ito est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par kalyparker
    Bonjour,

    c'est possible : va faire un tour ici :
    http://www.developpez.net/forums/sho...d.php?t=263951
    et à l'avenir
    J'ai trouvé la réponse dans le donné. Merci.
    Dans l'utilisation de la recherche rapide, je ne trouve pas toujours satisfaction.

    Cdlt.

  4. #4
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Dans l'utilisation de la recherche rapide, je ne trouve pas toujours satisfaction.
    No problem, on en est tous au même point...

    Allez encore un problème de résolu
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  5. #5
    Ito
    Ito est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par kalyparker
    No problem, on en est tous au même point...

    Allez encore un problème de résolu
    Bonjour,

    J'ai parcouru tous les liens donnés et j'ai fait un test, mais malheureuse ça ne marche pas. La colonne de la table qui doit recevoir la séquence reste vide.
    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
     
    Séquence:
    CREATE SEQUENCE sq_matl INCREMENT BY 1 START WITH 1 CACHE 20
    /
     
    Table:
    CREATE TABLE matl
    (	
    	numligne		NUMBER(5)	
    ,	liste		VARCHAR2(100)
    ,	groupement	VARCHAR2(100)
    ,	piece		VARCHAR2(10)
    )
    /
     
    Fichier de contrôle:
    LOAD DATA APPEND 'matl.csv'
    INTO TABLE matl
    FIELDS TERMINATED BY ';'
    (
    	numligne "sq_matl.nextval"
    ,	liste		CHAR(100)
    ,	groupement	CHAR(100)
    ,	piece		CHAR(10)
    )
     
    Les données:
    ;liste1;11 - SUPERSTRUCTURE;8200410131
    ;liste2;11 - SUPERSTRUCTURE;8200392254
    ;liste3;11 - SUPERSTRUCTURE;8200392256
    ;liste4;63 - SIEGES;8200374313
    ;liste5;11 - SUPERSTRUCTURE;8200374314
    ;liste6;11 - SUPERSTRUCTURE;R100038002
    Après insertion, ma 1ère colonne est vide. Pourquoi ?

    Merci

  6. #6
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    LOAD DATA APPEND 'matl.csv'
    INTO TABLE matl
    FIELDS TERMINATED BY ';'
    (
    	numligne "sq_matl.nextval"
    ,	liste		CHAR(100)
    ,	groupement	CHAR(100)
    ,	piece		CHAR(10)
    )
    Attention, dans ce fichier de controle il y a plusieurs erreurs :
    si tu précise fields terminated by alors tu n'as pas à définir la longueur de tes champs.
    d'autre part le nom de ton fichier source est mal placé et il manque infile.
    En bref, si tu veux que cela fonctionne voici ce que tu dois mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    LOAD DATA 
    INFILE 'matl.csv'
    APPEND
    INTO TABLE matl
    FIELDS TERMINATED BY ';'
    (
    	numligne "sq_matl.nextval"
    ,	liste
    ,	groupement	
    ,	piece		
    )
    Voilou
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  7. #7
    Ito
    Ito est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    Merci kalyparker,

    J'ai corrigé le fichier de contrôle et testé à nouveau mais hélas ma 1ère colonne qui doit contenir la séquence est vide tandis que les autres sont bien remplies.

    D'où peut provenir l'erreur ?

  8. #8
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    J'ai fait le test, et chez moi ça marche...
    J'ai la même config que toi, alors

    Essaye de dropper la sequence et de la recréer. Puis recharge ta table.
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  9. #9
    Ito
    Ito est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    Salut kalyparker,

    J'ai refait le test et ça marche. Le problème venait du fait que je chargeais la table en mode direct (donc en bloc) au lieu de charger en mode conventionnel c-a-d ligne par ligne. En mode direct, la séquence ne peut pas être incrémentée.

    Par ailleurs j'ai une autre problématique à régler: comment à travers sqlldr charger une colonne avec une constante, par exemple je veux mettre une constante dans ma colonne "liste" ?

    Merci.

  10. #10
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Salut Ito,

    sur ce site :
    http://orafaq.com/faqloadr.htm#MODIFY
    on peut trouver quelques infos sur les modifications des données.

    Cela dit, pour résoudre ton problème sur ce site il disent que l'on peux utiliser le mot CONSTANT.

    J'ai tester, mais ça marche pas. Essaye quand même on sait jamais.

    Sinon je te propose ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    LOAD DATA 
    INFILE 'test.txt'
    APPEND
    INTO TABLE matl
    FIELDS TERMINATED BY ';'
    (
    	numligne "sq_matl.nextval",
      liste  "decode(:liste,'','','TEST')",
      groupement,	
      piece		
    )
    pas très beau, mais efficace !!

    @+
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  11. #11
    Ito
    Ito est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    kalyparker,

    J'ai testé avec CONSTANT, effectivement ça ne marche.
    J'ai utilisé le DECODE et ça marche.

    Once again, thanks a lot for all.

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

Discussions similaires

  1. Annuler/empêcher l'incrémentation d'une séquence
    Par Elagym dans le forum Débuter
    Réponses: 4
    Dernier message: 15/12/2012, 16h43
  2. Réponses: 2
    Dernier message: 08/07/2011, 11h01
  3. Réponses: 9
    Dernier message: 19/03/2008, 20h52
  4. SQL sur le resultat d'une autre requete SQL
    Par skillipo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/12/2007, 17h45
  5. Réponses: 3
    Dernier message: 11/01/2006, 19h35

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