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

Importer des données ne marche pas pour gros fichiers


Sujet :

Sql Developer Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut Importer des données ne marche pas pour gros fichiers
    Bonjour,

    Je parle ici de l'action "Importer des données" en faisant un clic droit sur une table dans SQL Developer. Je suis sous Oracle 11g avec SQL Developer version 1.5.5 l'accompagnant.

    J'ai des fichiers CSV de 3 tables à charger avec pour ma base de données. Chacun de ces fichiers contient respectivement: 20000 lignes, 40000 lignes et 130000 lignes de données.

    Le soucis c'est que lorsqu'on clique enfin sur le bouton "Fin", rien ne se passe alors que tous les paramètres d'importation sont à SUCCESS.



    J'ai essayé en enlevant des lignes dans les CSV et ne garder qu'une centaine et là l'importation passe, c'est pour cela que je me disais que c'est à cause des tailles des fichiers. Est-ce un bug ou est-ce normal? Ce n'est que 20000 lignes à 130000 lignes non????

    Merci d'avance.
    Images attachées Images attachées  
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  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
    Vous pouvez passer par une table externe, c'est moins clickdromesque et ça demande de coder un peu, mais vous n'aurez pas ce genre de limitations.

  3. #3
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Vous pouvez passer par une table externe, c'est moins clickdromesque et ça demande de coder un peu, mais vous n'aurez pas ce genre de limitations.
    Expliquez un peu car je suis encore novice en Oracle. Merci!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  4. #4
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Une table externe, pour Oracle, c'est lui donner l'adresse d'un fichier. Il va alors considérer ce fichier comme une table (il faut bien sûr lui donner quelques précisions sur le format utilisé). À partir de là, on peut faire du SELECT sur cette table, et donc notamment du INSERT INTO table(colonnes) SELECT [colonnes] FROM tableExterne.

    Un peu de lecture locale sur les tables externes !

  5. #5
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    J'ai compris le principe de la table externe d'Oracle:
    - pour accéder au fichier CSV, un répertoire (Directory) doit être créé dans la base de données
    - faire un "grant read, write on directory" à l'utilisateur qui doit y accéder
    - enfin, la syntaxe de la création de la table est la suivante:
    Code sql : 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
    CREATE TABLE Ma_Table (
      "ASS_ID" VARCHAR2(100),
      "ASS_ID_UNIQUE" VARCHAR2(100),
      "ASS_IMMA_NUM" VARCHAR2(100),
      "ASS_IMMA_SEC" VARCHAR2(100),
      "ASS_IMMA_COMP" VARCHAR2(100),
    )
            ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER
                            DEFAULT DIRECTORY mydirectory
                            ACCESS PARAMETERS ( records delimited by newline
                                                badfile MYDIRECTORY:'Ma_Table.bad'
                                                logfile MYDIRECTORY:'Ma_Table.log'
                                                fields terminated by ','
                                                missing field values are null)
            LOCATION ('DATA_Ma_Table.csv'))
            PARALLEL REJECT LIMIT UNLIMITED;
    Ça marche!

    Le soucis maintenant c'est que je viens de créer une table externe sur un fichier CSV de 20465 lignes. Or lorsque je fais "SELECT COUNT(*) FROM Ma_Table", je n'ai que 19918 nombres de lignes.
    J'ai fait un export vers CSV de la table externe via SQL Developer, croyant que le chargement s'est arrêté avant la fin, et ben les dernières lignes du fichier CSV utilisé pour la table externe sont les même que la table externe en elle-même.

    Où sont passés les 547 lignes?
    Est-ce que c'est un bug courant des tables externes, des lignes sont avalées. En effet, j'ai supprimé la table externe et l'a recréé, j'obtiens maintenant 19122 lignes, toujours pas les 20465. Pourquoi??
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  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
    Non il n'y a pas ce genre de bug avec les tables externes, c'est très fiable.
    Regardez vos fichier .log et .bad, ça vous donnera probablement un aperçu des lignes manquantes.

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Y a t-il quelque chose dans les badfile et logfile ?
    [edit]grilled...

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

Discussions similaires

  1. Importer des données de sql server dans un fichier excel
    Par sab_info dans le forum Développement
    Réponses: 2
    Dernier message: 30/01/2013, 09h45
  2. Réponses: 6
    Dernier message: 07/09/2009, 11h42
  3. Réponses: 0
    Dernier message: 11/06/2009, 17h13
  4. Réponses: 12
    Dernier message: 24/10/2007, 12h00
  5. [SQLserver2000] Lire un fichier pour importer des données
    Par cladsam dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 01/10/2007, 10h40

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