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

Développement de jobs Discussion :

Génération automatique de valeur pour un champ clé de substitution


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Génération automatique de valeur pour un champ clé de substitution
    Bonjour,
    je suis entrain de migrer des données d'une table Access (supposons avec deux champs : code et libelle) vers une table Oracle (b de champs elle aussi code et libelle) mais je voudrai rajouter un nouveau champ clé de substitution dans la table oracle b comme dans les datawarehouse. donnc j'aurai pour b (cle,code,libelle).
    Je voulais savoir comment générer automatiquement les valeur du champ clé avec Talend (au niveau du tMap, j'ai eu à faire quelques transformations au niveau des autres champs).

    j'ai un job : tAccessInput-->tMap-->tOracleOutput.

    Merci d'avance de m'aider.

  2. #2
    co2
    co2 est déconnecté
    Membre éclairé
    Avatar de co2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 182
    Points : 829
    Points
    829
    Par défaut
    As tu essayé d'appeler une séquence Oracle via les additionnalcolumns dans ton tOracleOutput?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 100
    Points : 37
    Points
    37
    Par défaut Génération automatique de valeur pour un champ clé de substitution
    Bonjour

    As tu trouvé une solution à ta question stp ???

    Si c'est le cas, peux tu la mettre stp ??

    Merci d'avance

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 117
    Points : 161
    Points
    161
    Par défaut
    En l'occurrence, pour reprendre la réponse de co2, tu peux aussi définir une séquence Oracle et l'affecter à ta colonne par défaut. Auquel cas, tu peux omettre ton ID dans ton insert.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create matable
    (
        MonId integer default masequence.nextval,
       ...
    );

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 100
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup d'avoir répondu
    Peux tu détailler plus stp ??? j'ai pas bien compris

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 117
    Points : 161
    Points
    161
    Par défaut
    Et bien, en premier lieu il te faut définir une séquence dans ta base Oracle.

    (Si tu n'as pas de lignes dans ta table)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE SEQUENCE nom_de_la_sequence START WITH 1 INCREMENT BY 1;
    (Si tu as déjà des lignes dans ta table)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE SEQUENCE nom_de_la_sequence START WITH (select max( CHAMP_ID_CIBLE) from TABLE_CIBLE) INCREMENT BY 1;
    Une fois ta séquence déclarée dans ta base Oracle :
    Soit tu insères explicitement la prochaine valeur de la séquence via le "additionnal column" de ton tOracleOutput en lui spécifiant la valeur nom_de_la_sequence.nextval

    Soit dans ta table où ton id est déclaré, tu lui donne une valeur DEFAULT correspondant à la valeur suivante de la séquence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE_CIBLE modify CHAMP_ID_CIBLE integer default nom_de_la_sequence.nextval
    Dans ce cas, il te suffit, dans ton tOracleOutput d'omettre le champ ID dans le flux que tu lui envois. Par défaut, la valeur de l'ID correspondra donc à l'incrément de la séquence (valeur default de ta colonne).

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 117
    Points : 161
    Points
    161
    Par défaut
    Après vérification, l'utilisation de la clause default avec une séquence semble ne pas fonctionner.

Discussions similaires

  1. plusieurs valeurs pour un champ ? -- debutant
    Par copeau31 dans le forum Débuter
    Réponses: 8
    Dernier message: 03/10/2007, 22h27
  2. [Conception]Incrémenter automatiquement la valeur d'un champ
    Par pmelen dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/04/2007, 00h07
  3. Pb Mozilla (recup valeur pour remplir champ input text)
    Par seb92 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/03/2007, 11h01
  4. Renseigner automatiquement la valeur d'un champ
    Par Robson33 dans le forum Access
    Réponses: 5
    Dernier message: 01/01/2006, 22h51
  5. Requete SELECT : prendre toutes les valeurs pour 1 champ
    Par fab22montpellier dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/09/2005, 09h12

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