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 :

SQLLOADER: appel à une autre table dans la clause when du CTL


Sujet :

SQL*Loader Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut SQLLOADER: appel à une autre table dans la clause when du CTL
    Bonjour,

    Je voulais savoir, si dans un fichier de controle (CTL) il était possible d'ajouter dans la clause WHEN un appel à une table existante en base?

    Exemple:
    Ajout collaborateur si ID_Entreprise existe dans la table Entreprise ?

    Si non, quelle alternative?
    Un trigger?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par jamesleouf Voir le message
    Si non, quelle alternative ?
    Vous avez déjà eu la réponse dans un autre sujet, tables externes.

    Vous mappez votre fichier dans une table, après ça se manipule comme n'importe quelle table, vous pouvez faire des requêtes, des insert / updates / merge (dans votre table finale par exemple).

  3. #3
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut
    Oui, mais pourquoi utiliser une table externe si l'on peut utiliser une table existante.

    Donc on ne peut pas faire appel a une table existante depuis un fichier CTL?

    Une question un peu hors sujet:
    Je ne trouve aucun exemple sur internet concernant une comparaison d'entier dans le When du CTL.

    Exemple:
    si on a trois colonnes (id_colis, type_colis, nom_expediteur)

    faire un
    into table colis
    when type_colis>3

    C'est possible?

    Merci pour la réponse...

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Plutôt que de chercher à réaliser un processus ETL dans votre fichier de contrôle, voyez la table externe comme étant une source de données classique que vous pouvez utiliser partout.
    C'est un simple mapping mais qui vous permet d'utiliser le SQL & PL/SQL, probablement plus complet que les possibilités des fichiers CTL.

    Enfin ce n'est que mon avis !

  5. #5
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut
    Supposons que j'ai effectivement une table externe, décrite dans un csv quelque part.
    Si le CSV est remplacé chaque jour? Cette table sera mise à jour de la même manière n'est ce pas?

    Est ce mieux d'utiliser une table externe, plutot que d'utiliser un trigger pré insertion pour faire des vérification?

    Avec SQLLoader, est il quand même possible de faire une comparaison d'entier suivant la valeur d'une colonne? je n'ai trouvé que des comparaison que string...

    Merci beaucoup.
    Même si vous dites que ce n'est "que" votre avis, vous semblez bien renseigné

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si le csv change (il faut qu'il conserve la même structure bien entendu), le contenu de la table changera lorsqu'on fera un select dessus.
    Voyez la table externe comme un moyen de requêter sur votre fichier, ce n'est pas une table finale.

    Pour les comparaisons, je ne sais pas du tout !

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/05/2010, 16h01
  2. Réponses: 13
    Dernier message: 14/04/2008, 14h30
  3. Modifier une autre table dans un trigger
    Par Mister Nono dans le forum SQL
    Réponses: 4
    Dernier message: 18/09/2007, 12h12
  4. Réponses: 4
    Dernier message: 15/03/2007, 20h32
  5. Réponses: 1
    Dernier message: 20/12/2005, 15h56

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