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 :

Alimentation d'une table [Fait]


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut Alimentation d'une table
    bonjour,
    je dois alimenter un table dans les plus bref delai avec pl\sql à partir d'un fichier plat sans separateur.comme indication je n'ai que la longueur des champs de ma table.
    est ce que quelqu'un aurait une idée pour me depanner?

    merci d'avance.

  2. #2
    Invité
    Invité(e)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    j'ai déja lu ce tuto mais malheureusement mon fichier ne contient pas de separateur ce qui m'empêche d'utilider sqlldr. mon responsable nous a recommander de le faire avec pl\sql
    avez vous une idèe par rapport à ça ?

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    UTL_FILE... mais ton responsable aurait du préconiser d'ajouter des séparateurs ce qui serait plus simple Sinon, si tes champs ont une longueur fixe SQL*Loader peut le gérer aussi même sans séparateur.

  5. #5
    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
    Ca a l'air d'être un fichier en longueur fixe. Utilisez les tables externes c'est bien plus simple que UTL_FILE.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    comment puis je gerer l'absence de separateur en utilisant les tables externes?

  7. #7
    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
    Voilà un exemple dans lequel j'ai pris quelques racourcis
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    Create table ext_emp (
      empno	     varchar2(4),
      ename	     varchar2(10),
      job	       varchar2(9),
      mgr	       varchar2(4),
      hiredate	 varchar2(8),
      sal	       varchar2(7),
      comm	     varchar2(7),
      deptno	   varchar2(2)
    ) 
    ORGANIZATION EXTERNAL
     (TYPE ORACLE_LOADER
      DEFAULT DIRECTORY dir_extraction
      ACCESS PARAMETERS
      (RECORDS DELIMITED BY NEWLINE
       BADFILE 'Ext_emp.bad'
       LOGFILE 'Ext_emp.log'
       FIELDS
       MISSING FIELD VALUES ARE NULL
        (  empno	     position(1:4),
           ename	     position(5:14),
           job	       position(15:23),
           mgr	       position(24:27),
           hiredate	   position(28:35),
           sal	       position(36:42),
           comm	       position(43:49),
           deptno	     position(50:51)
        )
      )
      LOCATION ('ext_Emp.txt')
    )
     
    Fichier 'ext_Emp.txt' 
     
    012345678901234567890123456789012345678901234567890
    012345678901234567890123456789012345678901234567890
    012345678901234567890123456789012345678901234567890
     
    SQL*Plus: Release 9.2.0.5.0 - Production on Ma Mai 6 11:53:29 2008
     
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
     
     
    Connecté à :
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
    JServer Release 9.2.0.5.0 - Production
     
    SQL> select * from ext_emp
      2  ;
     
    EMPN ENAME      JOB       MGR  HIREDATE SAL     COMM    DE
    ---- ---------- --------- ---- -------- ------- ------- --
    0123 4567890123 456789012 3456 78901234 5678901 2345678 90
    0123 4567890123 456789012 3456 78901234 5678901 2345678 90
    0123 4567890123 456789012 3456 78901234 5678901 2345678 90

  8. #8
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Tu n'as pas forcément besoin de séparateur avec sql loader.

    Tu peux préciser les offsets et taille des champs
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    je vous remercie tous j'ai fait quelques recherches sur les differentes solutions que vous m'avez proposés et je les trouves assez simple aussi.
    mais mon responsable de stage vient de m'informer que je dois faire l'alim avec pl\sql(utl_file). des references et doc seront les bienvenues pour ceux qui en ont.
    mercie pour tout

  10. #10
    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
    Change de responsable. Utilisez recherche sur ce site.

  11. #11
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    Je pense que ce tutorial t'amènera tout ce que tu as besoin de savoir.

    http://www.devshed.com/c/a/Oracle/Re...L-and-UTLFILE/

  12. #12
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Change de responsable. Utilisez recherche sur ce site.
    +1 un responsable de stage c'est sensé faire apprendre le métier et donc les bonnes pratiques

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par orafrance Voir le message
    +1 un responsable de stage c'est sensé faire apprendre le métier et donc les bonnes pratiques
    ouais +1, si c'est pour réinventer la roue, je ne vois pas trop l'intérêt...

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    selon lui c'est un exercice car on va passer a informatica la semaine prochaine.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/03/2007, 12h47
  2. trier un stringgrid alimenter par une table MySql
    Par boopix dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/03/2007, 15h28
  3. Alimentation d'une table : boucle ou tableau?
    Par ALLB dans le forum Oracle
    Réponses: 5
    Dernier message: 09/05/2006, 21h29
  4. Alimentation d'une table de dimension date
    Par kluh dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/07/2005, 15h34
  5. alimenter automatiquement une table access
    Par Mickey34 dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2004, 18h55

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