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

[Oracle 9i] Chargements de fichiers en tables


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 156
    Par défaut [Oracle 9i] Chargements de fichiers en tables
    Bonjour,

    Permettez-moi de vous exposer ma problématique...

    Je dois traiter dans un batch les données provenant d'un fichier au format texte. Chaque ligne de ce fichier correspond à un type d'enregistrement identifié par un trigramme (ou équivalent car peu importe). L'idée serait de traiter ces données qui auraient été insérées dans une table oracle afin de simplifier les contrôles, les mises en forme, etc...

    Donc j'ai aussitôt pensé à SQL*Loader ou autres tables externes mais la difficulté réside dans le fait que toutes les lignes du fichier n'ont pas la même structure...

    Alors comment procéder ? Faire une table temporaire par type d'enregistrement ? Fare une table banalisée mais dans ce cas, comment prévenir les messages d'erreur du Loader ? Ou dois je me résoudre à travailler sur le fichier sans pouvoir le monter dans une table ?

    Merci d'avance,

    Frédéric

  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
    Par défaut
    Sql Loader te permet de charger plusieurs tables d'un coup.
    avec la clause when

    Je m'expliques tu identifie ce qui caractérise ton enregistrement à charger dans ta table et tu décrit tes différentes tables.
    Je pense que tu peux trouver plus d'info sur le site...
    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
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 156
    Par défaut
    Ah oui je vois, en gros ça revient à répartir le fichier en plusieurs tables en fonction d'une clause comme la valeur d'une zone par exemple ? Je ne savais pas, c'est une très belle fonctionnalité...

    MAis je complique mon besoin désolé . Faudrait quand même que je sache relier les lignes car en fait c'est une structure d'enregistrements qui concerne un bloc de données cohérent. Si je prenais un exemple, je dirais qu'un client est décrit par :
    - nom, prénom, état civil : enreg type 1
    - adresse : enreg type 2
    - commande 1 : enreg type 3
    - commande 2 : enreg type 3
    Quel que soit l'éclatement, je dois savoir relier tout ça au client en question.

    Vous voyez ?

    Fred

  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
    Par défaut
    Qu'est ce qui, actuellement, te permet de relier tes différents enregistrements ?
    L'ordre dans le fichier ?
    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
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 156
    Par défaut
    Oui ça revient à ça. L'enregistrement type 1 par exemple marque le début de la description du bloc de données.

  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
    Par défaut
    Je crois qu'il te faux créer un ident commun.
    Une des solutions possibles serais de d'utiliser des sequences dans un trigger.
    Lorsque tu charges les données avec sqlldr les triggers sont déclenchés alors... autant en profiter
    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.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/03/2015, 09h42
  2. Chargement table Oracle à partir d'un fichier plat
    Par tonio45312 dans le forum SQL
    Réponses: 7
    Dernier message: 19/06/2008, 14h38
  3. Réponses: 1
    Dernier message: 04/03/2008, 19h24
  4. Réponses: 3
    Dernier message: 28/11/2006, 08h44
  5. [Oracle Text]Chargement de fichiers / index
    Par Kuuei dans le forum SQL
    Réponses: 2
    Dernier message: 13/05/2006, 12h46

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