Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2011, 12h17   #1
Invité de passage
 
Inscription : juin 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 26
Points : 4
Points : 4
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
FHeybati est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 12h22   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 300
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 300
Points : 1 504
Points : 1 504
Envoyer un message via AIM à mpeppler
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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h06   #3
Invité de passage
 
Inscription : juin 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 26
Points : 4
Points : 4
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
FHeybati est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 13h21   #4
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
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
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 13h36   #5
Invité de passage
 
Inscription : juin 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 26
Points : 4
Points : 4
Je n'ai que des varchar.
FHeybati est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 13h08   #6
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 300
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 300
Points : 1 504
Points : 1 504
Envoyer un message via AIM à mpeppler
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
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 19h12   #7
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 26
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 26
Points : 30
Points : 30
Citation:
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 :
1
2
3
4
5
 CREATE TABLE tstbcp
(   colid int
  , collb varchar(50)
  , colst int
)
le fichier "format" pourrait être:
Code :
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 :
% 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
DBRep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 19h50   #8
Invité de passage
 
Inscription : juin 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 26
Points : 4
Points : 4
Merci
FHeybati est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 13h45   #9
Invité de passage
 
Inscription : juin 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 26
Points : 4
Points : 4
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.
FHeybati est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 00h59   #10
Nouveau Membre du Club
 
Inscription : décembre 2007
Messages : 26
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 26
Points : 30
Points : 30
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
DBRep est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h27.


 
 
 
 
Partenaires

Hébergement Web