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

Adaptive Server Enterprise Sybase Discussion :

BCP: Generation de fichier au format fix


Sujet :

Adaptive Server Enterprise Sybase

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut BCP: Generation de fichier au format fix
    Bonjour,
    Est ce possible d'extraire et générer un fichier au format fixe avec BCP?
    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Qu'est-ce que tu entends par "format fixe" ?

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Si la colonne est définie sur 20 caractères et qu'il n'y a que 15 caractères dans la base alors remplir par espace pour arriver à une longueur de 20.
    De ce fait, ce n’est pas le séparateur qui définit la position d’un champ mais sa longueur :
    col1, col2, col3
    Versus
    col1 col2 col3

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Et pour les entiers / numériques, vous voulez mettre quoi ?

    J'ai bien peur que ce que vous cherchez à faire n'est pas viable... Quel est le but recherché derrière tout ça?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Je n'ai que des varchar.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    S'il n'y a que des varchar, tu peux créer une vue qui fait des convert(char(xx), ...), et faire un bcp out depuis la vue.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 37
    Points : 48
    Points
    48
    Par défaut
    Est ce possible d'extraire et générer un fichier au format fixe avec BCP?
    Merci d'avance
    Oui, ça l'est.
    de rien.


    Il faut utiliser les fichiers "format" de BCP (voire la doc Sybase pour les détails), par exemple:

    pour une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     create table tstbcp
    (   colid int
      , collb varchar(50)
      , colst int
    )
    le fichier "format" pourrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    10.0
    3
    1 SYBCHAR 0 4 "" 1 colid
    2 SYBCHAR 0 50 "" 2 collb
    3 SYBCHAR 0 4 "\n" 3 colst
    la première ligne contient un numéro de version (O/C, BCP, ou TDS, je ne sais plus trop)
    la deuxième ligne contient le nombre de colonnes dans le fichier de sortie
    ensuite chaque ligne défini une colonne:
    - position de la colonne dans le fichier de sortie
    - type dans le fichier de sortie (par exemple, un "int" dans une table peut être extrait en tant que SYBCHAR)
    - la longueur du "pre-fixe-length" ("0" indique qu'on n'utilisera que 0 octet pour stoker la longueur de la zone dans le fichier de sortie, donc rien, c'est à dire que dans ce cas, l'information ne nous intéresse pas dans le fichier de sortie)
    - longueur de la colonne dans le fichier de sortie
    - séparateur de colonne (noter le "\n" sur la dernière colonne)
    - position de la colonne dans la table (c'est peut-etre inversé avec l'autre position, c'est à vérifier)
    - nom de la colonne dans la table

    Ensuite il faut lancer le BCP avec l'option "-f"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    % bcp <db-name>..tstbcp out tstbcp.out -f tstbcp.fmt -U<user-name> -P<user-pwd> -S<srv-name>
    il y a possibilité de générer ce fichier format en invoquant la commande BCP sans l'option "-f" et en répondant aux différentes question de BCP


    DBRep

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Merci

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    C'est curieux le format de fichier obtenu. J'ai des caractères spéciaux :
    x ? @GRP01 INST1 01/01/1900 A

    ce n'est pas exploitable.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 37
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par FHeybati
    ce n'est pas exploitable.
    Il faut que tu m'en dises plus:

    - quel contenu as-tu dans ton fichier format de BCP
    - quelle structure de table as-tu
    - quelle commande exécutes-tu (ligne de commande BCP)

    et éventuellement ta version d'ASE et O/C


    DBRep

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

Discussions similaires

  1. BCP Inject - fichier d'import fixe
    Par gg_12 dans le forum Outils
    Réponses: 5
    Dernier message: 21/09/2011, 16h24
  2. BCP Inject - fichier d'import fixe
    Par gg_12 dans le forum C#
    Réponses: 6
    Dernier message: 12/09/2011, 08h50
  3. recherche de doublon dans un fichier format fixe
    Par Kam0uloX dans le forum VBScript
    Réponses: 3
    Dernier message: 07/02/2011, 20h29
  4. [Fichier] génération format DOS
    Par Alexr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 13/01/2005, 17h30

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