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 :

[SQL] charger données russes dans une BDD existante


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 117
    Par défaut [SQL] charger données russes dans une BDD existante
    Bonjour,

    J'ai une base de données Oracle 8.1.7 qui contient des données de différents pays tel que la France, l'espagne, la belgique....

    On me demande d'insérer des données russes qui sont encodées en CP1251.
    Je peux convertir ces données en unicode si je le souhaite mais je ne sais pas du tout comment charger ces données dans la base.
    Le chargement se fait en sql loader , ma ligne de commande est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlldr dbadwh/dbadwh@dwh source/RUS_CHR_TIE_GAR_1.ctl data=../data/RUSGARAN_UTF8.DAT
    En effet, si je charge les données directement sans transformer le fichier de données (donc les données sont en CP1251), le chargment se passe bien mais les caractères syrillic ne sont pas lisibles.

    Il faut donc que je transforme le fichier en UTF8, les caractères sont corrects nsi je regarde le fichier de données mais le chargement ne passe pas bien,

    voici le message d'erreur :

    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
    SQL*Loader: Release 8.1.7.0.0 - Production on Me Jun 14 10:34:16 2006
     
    (c) Copyright 2000 Oracle Corporation.  All rights reserved.
     
    Fichier de contrôle :   source/RUS_CHR_TIE_GAR_1.ctl
    Fichier de données :      ../data/RUSGARAN_UTF8.DAT
      Fichier défectueux :     source/RUSGARAN_UTF8.bad
      Fichier de rebut :  aucune spécification
     
     (Allouer tous les rebuts)
     
    Nombre à charger : ALL
    Nombre à sauter: 0
    Erreurs permises: 50
    Tableau de liens :     64 lignes, maximum de 65536 octets
    Continuation :    aucune spécification
    Chemin utilisé:      Classique
     
    Table TMP_TIE_GAR, chargé à partir de chaque enregistrement physique.
    Option d'insertion en vigueur pour cette table : APPEND
     
       Nom de colonne               Position   Long.  Séparat. Encadrem. Type de données
    ------------------------------ ---------- ----- ---- ---- ---------------------
    CODE_PAYS                                                 CONSTANT
        La valeur est 'RUS'
    FLAG_CREATION                                             CONSTANT
        La valeur est 'N'
    FLAG_MODIF                                                CONSTANT
        La valeur est 'N'
    ADRESSE                              1:40    40           CHARACTER            
    TIERS_CLIENT                        41:51    11           CHARACTER            
    CODE_POSTAL                         85:90     6           CHARACTER            
    VILLE                              98:137    40           CHARACTER            
    NOM                               251:290    40           CHARACTER            
     
    Enregistrement 1 : Rejeté - Erreur sur table TMP_TIE_GAR, colonne TIERS_CLIENT.
    ORA-01722: Nombre non valide

    et il dit "nombre non valide" pour tous les enregistrements.

    Auriez vous une solution?



    Merci


    Charlotte,

    Boulogne (92)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut
    Table TMP_TIE_GAR, chargé à partir de chaque enregistrement physique.
    Option d'insertion en vigueur pour cette table : APPEND

    Nom de colonne Position Long. Séparat. Encadrem. Type de données
    ------------------------------ ---------- ----- ---- ---- ---------------------
    CODE_PAYS CONSTANT
    La valeur est 'RUS'
    FLAG_CREATION CONSTANT
    La valeur est 'N'
    FLAG_MODIF CONSTANT
    La valeur est 'N'
    ADRESSE 1:40 40 CHARACTER
    TIERS_CLIENT 41:51 11 CHARACTER
    CODE_POSTAL 85:90 6 CHARACTER
    VILLE 98:137 40 CHARACTER
    NOM 251:290 40 CHARACTER

    Enregistrement 1 : Rejeté - Erreur sur table TMP_TIE_GAR, colonne TIERS_CLIENT.
    ORA-01722: Nombre non valide
    Question peut-être idiote, mais as-tu pu vérifier les formats des champs TIERS_CLIENT et CODE_POSTAL une fois converti en UFT8, ceux de la table d'accueil?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 117
    Par défaut
    La table d'accueil est identique à celle des autres pays, aucun changement n'a été fait.

    voilà le script de la table:
    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
     
    CREATE TABLE TMP_TIE_GAR ( 
      TIERS_CLIENT   NUMBER (11), 
      CODE_PAYS      VARCHAR2 (4), 
      CODE_POSTAL    VARCHAR2 (6), 
      ADRESSE        VARCHAR2 (40), 
      FLAG_CREATION  CHAR (1), 
      FLAG_MODIF     CHAR (1), 
      NOM            VARCHAR2 (40), 
      VILLE          VARCHAR2 (40), 
      NO_TELEPHONE   NUMBER (10))
       TABLESPACE TPB_D NOLOGGING 
       PCTFREE 10
       PCTUSED 40
       INITRANS 1
       MAXTRANS 255
      STORAGE ( 
       INITIAL 104857600
       NEXT 20971520
       PCTINCREASE 0
       MINEXTENTS 1
       MAXEXTENTS 2147483645
       FREELISTS 1 FREELIST GROUPS 1 )
       NOCACHE;

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut
    Excuse-moi, je voulais dire "vérifier le format des données contenues dans les champs, après conversion UFT8". Sinon, je ne vois pas...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 117
    Par défaut
    tu vérifierais ça comment?
    Quand j'ouvre le fichier texte de données, je vois des chiffres.....

    Je te joins mon fichier de données converti.
    Peut être verras tu quelque chose qui m'aurait échapper.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut
    Sur ce type d'erreur, je vérifie habituellement de façon "fonctionnelle" :
    - vérifier la longueur de chaque enregistrement,
    - vérifier que les données sont à la bonne place dans le fichier d'entrée (exemple : toutes les plages d'adresse sont alignées? )
    - vérifier qu'il n'y a pas de caractère polluant....

    Le fichier joint, rusgaran_UFT8.txt ne répond pas à ces critères. Il y a effectivement des caractères cyrilliques, les données ne sont pas alignées, il semble que des enregistrements russes soient mélangés avec des enregistrements français....

    Bien que ne connaissant pas SQL Loader (et notamment je m'interrogeais sur la syntaxe "CHARACTER" pour récupérer des données "NUMBER") , le problème semble se situer sur la structure de ce fichier converti....

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/10/2012, 15h45
  2. [AC-2002] Gestion de statistiques dans une BDD existante
    Par azertix dans le forum Modélisation
    Réponses: 6
    Dernier message: 12/01/2010, 14h19
  3. Réponses: 4
    Dernier message: 05/10/2009, 18h58
  4. [MySQL] Envoyer les données d'un CSV dans une BDD Mysql
    Par guyfoot dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/09/2007, 07h13
  5. [Type de données]Comment sauvegarder fichiers dans une bdd?
    Par splinternabs dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 06/04/2006, 15h14

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