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

Sybase Discussion :

[Sybase]Problème avec le BCP sous Solaris


Sujet :

Sybase

  1. #1
    sl
    sl est déconnecté
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Sybase]Problème avec le BCP sous Solaris
    Bonjour,

    Je souhaite charger les données d'un fichier dans une table. Mais il faut que j'intégre uniquement les données valides (les lignes valides du fichier) dans la table et mettre les données erronées dans un autre fichier.
    J'utilise cette commande dans un batch :

    bcp mutubatch..tmp_testbcp in fichier_tmp_testbcp.txt -U sa -P -c -t";" -e erreur.txt -m 2

    Et le problème est que toutes les lignes sont intégrées dans la table même celles qui ne correspondent pas à la structure de la table, elles sont tronquées. Mon fichier de données à 5 lignes dont trois erronées donc normalement je devrais avoir 2 lignes intégrées et 3 redirigées dans le fichier erreur.txt. Or j'obtiens pas ça. Comment faire ?

    Merci,
    ls

    Annexes

    Script shell :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    #!/bin/csh 
     
    # Batch  : TestBcp.csh     
    # Realise par : S.Lechable    
    # But  :        
     
    echo "Début du script - "$0 
    date 
    echo "Paramètre : "$1 
     
    ################################# 
    # Paramètres  # 
    ################################# 
     
    set EXTENSION=`date +"%Y%m%d"` 
    set fic_trace=/home/sybase/admin/batch/test/trace/"TESTBCP.TRACE."$EXTENSION 
     
    #################################################################### 
    #                                 Sql                              # 
    #################################################################### 
     
    doit << EOFile 
     
    select '# Début trace Sql ' , getdate() 
    go 
     
    use mutubatch 
    go 
     
    /**********************************************************************/ 
    select '# Si les tables temporaires existent, elles sont supprimées.' , getdate() 
    go 
     
    if exists (select * from sysobjects where name='tmp_testbcp') 
     drop table tmp_testbcp 
    go 
     
    /**********************************************************************/ 
    select '# Création des tables temporaires.' , getdate() 
    go 
     
    create table tmp_testbcp  
    ( 
    chp1 char(2) null, 
    chp2 char(2) null, 
    chp3 char(2) null, 
    chp4 char(2) null, 
    chp5 char(2) null, 
    chp6 char(2) null, 
    chp7 char(2) null, 
    chp8 char(2) null 
    ) 
    go 
     
    EOFile 
     
    # BCP - Insertion des données dans les tables temporaires  
     
    echo "Insertion des données des fichiers dans les tables temporaires" 
     
    bcp mutubatch..tmp_testbcp in fichier_tmp_testbcp.txt -U sa -P  -c -t";" -e erreur.txt -m 2 
     
    echo "Fin du script - "$0 
    date
    Fichier fichier_tmp_testbcp.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ll;lo;lp;re;kr;pe;bv;op 
    ll;lo;lp;re;kr;pe;bv;op 
    ll;lo;rlp;re;kr;pe;bv;op 
    ll;lo;lp;re;krr;pe;bv;op 
    4ll;lo;lp;re;kr;pe;bv;op
    Résultat du script :

    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
    Début du script - TestBcp.csh 
    Mon Sep  6 14:56:20 MEST 2004 
    Paramètre :  
     
     ------------------ --------------------------  
     # Début trace Sql         Sep  6 2004  2:56PM  
     
    (1 row affected) 
     
     ------------------------------------------------------------ --------------------------  
     # Si les tables temporaires existent, elles sont supprimées.        Sep  6 2004  2:56PM  
     
    (1 row affected) 
     
     ---------------------------------- --------------------------  
     # Création des tables temporaires.        Sep  6 2004  2:56PM  
     
    (1 row affected) 
    Insertion des données des fichiers dans les tables temporaires 
     
    Starting copy... 
    CSLIB Message:  - L0/O0/S0/N36/1/0: 
    cs_convert: cslib user api layer: common library error: The result is truncated because the conversion/operation resulted in overflow. 
    CSLIB Message:  - L0/O0/S0/N36/1/0: 
    cs_convert: cslib user api layer: common library error: The result is truncated because the conversion/operation resulted in overflow. 
    CSLIB Message:  - L0/O0/S0/N36/1/0: 
    cs_convert: cslib user api layer: common library error: The result is truncated because the conversion/operation resulted in overflow. 
     
    5 rows copied. 
    Clock Time (ms.): total = 1000  Avg = 200 (5.00 rows per sec.) 
    Fin du script - TestBcp.csh 
    Mon Sep  6 14:56:21 MEST 2004

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    bcp tronque effectivement dans ce cas de figuer. Ce cas n'est pas considéré comme une erreur, mais comme un warning.

    Ce qu'il vous faut faire, c'est un traitement en amont.

    1) Créer une vue sur voter table répertoriant les bonnes lignes
    2) Créer une 2e vue sur voter table répertoriant les mauvaises lignes
    3) faire 2 bcp distincts de chacune de ces vues.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    sl
    sl est déconnecté
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par fadace
    bcp tronque effectivement dans ce cas de figuer. Ce cas n'est pas considéré comme une erreur, mais comme un warning.

    Ce qu'il vous faut faire, c'est un traitement en amont.

    1) Créer une vue sur voter table répertoriant les bonnes lignes
    2) Créer une 2e vue sur voter table répertoriant les mauvaises lignes
    3) faire 2 bcp distincts de chacune de ces vues.
    Mais comment distinguer les bonnes lignes des mauvaises sachant que lorsqu'on fait un BCP il ne dit pas le numéro des lignes qui pose problème.

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Votr problème vient des lignes tronquées. Il suffit donc, avant bcp, de détecter les tuples qui seront plus grand dans la table cible que dans la table source
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

Discussions similaires

  1. problème avec la STL sous solaris
    Par sofiane80 dans le forum SL & STL
    Réponses: 12
    Dernier message: 01/12/2009, 14h26
  2. problème avec formulaire et sous formulaire
    Par Lnjam dans le forum Access
    Réponses: 2
    Dernier message: 28/01/2006, 17h52
  3. Problème avec un diapo sous IE
    Par Mucsy dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 06/01/2006, 00h40
  4. problème avec les div sous Mozilla
    Par MrsFrizz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/10/2005, 11h54
  5. problème avec z-index sous firefox ???
    Par SpaceFrog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 22/09/2005, 20h39

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