OVH Cloud OVH Cloud

[bcp]montant non pris en compte

4 réponses
Avatar
404 found
je pense que je prendrais ma retète dés que je comprendrai ce bcp comment il
marche !!

j'ai une colonne montant dans ma table de type float(8) (d'ailleur je ne
sais pas si je dois la définir en tant que Money)

dans mon fichier txt, j'ai des montant avec des virgules et d'autres avec
des point (j'ai le style 480,21 et 345.84)

le bcp ne me prend que les montant avec virgule et m'affiche l'erreur :

Valeur de caractère non valide pour la spécification"

comment je peux remédier à ça ?

4 réponses

Avatar
Fred BROUARD
Attention Fabrice, le fichier donné en exemple dans l'aide en ligne (image)
contient des erreurs !

Pour ce qui est de ton problème "peugeot 404" il faudrait passer par une table
d'import dont les colonnes ne sont pas typées (VARCHAR) et de faire un
remplacement des caractères virgule par point à l'aide d'un UPDATE.

A +

Romelard Fabrice [MVP] a écrit:
Bonjour,

Je pense qu'il vous faut ajouter des options voir éventuellement créer un
fichier de format.
Je vous copie l'aide MSDN pour cet outil.
------

Administration de SQL Server

Utilisation de fichiers de format
Lors de la copie en bloc des données en mode interactif, l'utilitaire bcp
vous invite à enregistrer des informations relatives au type de stockage,
longueur de préfixe et de champ et les indicateurs de fin de champ et de
ligne. Le fichier utilisé pour stocker les informations de format pour
chaque champ dans le fichier de données est appelé le fichier de format :

Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]
Bien que le nom par défaut du fichier de format soit Bcp.fmt, vous pouvez
spécifier un nom différent si vous le souhaitez.

Ce fichier de format fournit les informations par défaut utilisées pour la
copie en bloc des données du fichier vers une instance de Microsoft® SQL
ServerT ou la copie en bloc ultérieure des données de la table sans avoir à
spécifier de nouveau le format. Lors de la copie en bloc des données vers ou
à partir d'une instance de SQL Server avec un fichier de format existant,
l'utilitaire bcp ne vous invite pas à fournir d'informations concernant le
type de stockage du fichier, la longueur de préfixe ou l'indicateur de fin
de champ, car ces valeurs ont déjà été enregistrées.

Pour utiliser un fichier de format créé précédemment lors de l'importation
de données vers une instance de SQL Server, vous devez utiliser le
commutateur -f avec l'utilitaire bcp ou la clause FORMATFILE avec
l'instruction BULK INSERT. Par exemple, la commande de copie en bloc du
contenu du fichier New_auth.dat vers la table authors2 de la base de données
pubs à l'aide d'un fichier de format préalablement créé (Authors.fmt) est la
suivante :

bcp pubs..authors2 in
c:new_auth.dat -fc:authors.fmt -Sservername -Usa -Ppassword
L'instruction BULK INSERT peut utiliser les fichiers de format sauvegardés
par l'utilitaire bcp. Exemple :

BULK INSERT pubs..authors2 FROM 'c:new_auth.dat'
WITH (FORMATFILE = 'c:authors.fmt')
Le fichier de format est un fichier texte délimité par des tabulations et
doté d'une structure particulière.



Le tableau suivant décrit les structures de format de fichier.

Champ Description
Version Numéro de version de bcp.
Nombre de champs Nombre de champs dans le fichier de données. Il doit
être identique pour toutes les lignes.
Ordre des champs du fichier hôte Position de chaque champ dans le
fichier de données. Le premier champ de la ligne correspond à la valeur 1,
etc.
Type de données du fichier hôte Type de données stockées dans le champ
particulier du fichier de données. Avec les fichiers de données ASCII,
utilisez SQLCHAR ; pour les fichiers de données au format natif, utilisez
les types de données par défaut. Pour plus d'informations, voir Type de
stockage de fichier.
Longueur de préfixe Nombre de caractères du préfixe de longueur pour
le champ Les longueurs de préfixe autorisées sont les valeurs 0, 1, 2 et 4.
Pour éviter de spécifier le préfixe de longueur, donnez-lui la valeur 0. Un
préfixe de longueur doit être spécifié si le champ contient des valeurs de
données NULL. Pour plus d'informations, voir Longueur de préfixe.
Longueur des données du fichier hôte Longueur maximale, en octets, du
type des données stockées dans le champ particulier du fichier de données.
Pour plus d'informations, voir Longueur du champ.
Indicateur de fin Caractère de séparation utilisé pour délimiter les
champs dans un fichier de données. Les indicateurs de fin communs sont la
virgule (,), la tabulation (t), et la fin de ligne (rn). Pour plus
d'informations, voir Indicateur de fin de champ.
Ordre des colonnes du serveur Ordre dans lequel les colonnes
apparaissent dans la table SQL Server . Par exemple, si le quatrième champ
du fichier de données est mappé sur la sixième colonne d'une table SQL
Server, alors la valeur de l'ordre des colonnes du serveur pour le quatrième
champ est 6. Pour éviter qu'une colonne dans la table ne reçoive des données
du fichier de données, fixez la valeur de l'ordre des colonnes du serveur à
0.
Nom de colonne du serveur Nom de la colonne pris dans la table SQL
Server. Il n'est pas indispensable d'employer le nom réel du champ. La seule
condition requise est que le nom du champ dans fichier de format ne soit pas
vide.
Collation Classement utilisé pour stocker des caractères et des
données Unicode dans le fichier de données de copie en bloc.




Remarque Il est possible de ne pas importer une colonne de la table si le
champ n'existe pas dans le fichier de données en spécifiant la valeur 0 pour
les champs longueur de préfixe, longueur, ordre des colonnes du serveur et
en ne spécifiant pas d'indicateur de fin. Ceci établit effectivement que le
champ de données n'existe pas dans le fichier de données, et que la colonne
sur le serveur doit pas charger de données.


Copie sélective des données
Un fichier de format vous offre le moyen de réaliser des copies sélectives
de données en bloc à partir d'un fichier de données vers SQL Server. Cela
vous permet de transférer des données vers une table en cas de mauvaise
correspondance entre les champs du fichier et les colonnes de la table.
Cette approche peut être utilisée lorsque les champs du fichier sont :

a.. inférieurs en nombre par rapport aux colonnes de la table ;


b.. supérieurs en nombre par rapport aux colonnes de la table ;


c.. dans un ordre différent de celui des colonnes de la table.
En utilisant un fichier de format, il est possible de copier en bloc des
données dans SQL Server sans qu'il soit nécessaire d'ajouter ou de supprimer
inutilement des données, ou d'ordonner de nouveau des données existantes
dans le fichier.

Les trois rubriques suivantes contiennent des exemples de copie de données
sélective. En ce qui concerne les trois exemples suivants, vous devez au
préalable faire une copie de la table authors, appelée authors2, dans la
base de données pubs. Pour créer une copie de la table authors, vous devez
exécuter ce qui suit :

USE pubs
GO
SELECT * INTO authors2 FROM authors
GO

Voir aussi

FormatFilePath Property

©1988-2000 Microsoft Corporation. Tous droits réservés.
-----






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Romelard Fabrice [MVP]
A ben si les fichiers MSDN sont faux maintenant :)))
A qui peut-on faire confiance :)

Je retire donc ma réponse du fil :)

Fabrice

"Fred BROUARD" a écrit dans le message de
news:
Attention Fabrice, le fichier donné en exemple dans l'aide en ligne


(image)
contient des erreurs !

Pour ce qui est de ton problème "peugeot 404" il faudrait passer par une


table
d'import dont les colonnes ne sont pas typées (VARCHAR) et de faire un
remplacement des caractères virgule par point à l'aide d'un UPDATE.

A +

Romelard Fabrice [MVP] a écrit:
> Bonjour,
>
> Je pense qu'il vous faut ajouter des options voir éventuellement créer


un
> fichier de format.
> Je vous copie l'aide MSDN pour cet outil.
> ------
>
> Administration de SQL Server
>
> Utilisation de fichiers de format
> Lors de la copie en bloc des données en mode interactif, l'utilitaire


bcp
> vous invite à enregistrer des informations relatives au type de


stockage,
> longueur de préfixe et de champ et les indicateurs de fin de champ et de
> ligne. Le fichier utilisé pour stocker les informations de format pour
> chaque champ dans le fichier de données est appelé le fichier de format


:
>
> Do you want to save this format information in a file? [Y/n] y
> Host filename: [bcp.fmt]
> Bien que le nom par défaut du fichier de format soit Bcp.fmt, vous


pouvez
> spécifier un nom différent si vous le souhaitez.
>
> Ce fichier de format fournit les informations par défaut utilisées pour


la
> copie en bloc des données du fichier vers une instance de Microsoft® SQL
> ServerT ou la copie en bloc ultérieure des données de la table sans


avoir à
> spécifier de nouveau le format. Lors de la copie en bloc des données


vers ou
> à partir d'une instance de SQL Server avec un fichier de format


existant,
> l'utilitaire bcp ne vous invite pas à fournir d'informations concernant


le
> type de stockage du fichier, la longueur de préfixe ou l'indicateur de


fin
> de champ, car ces valeurs ont déjà été enregistrées.
>
> Pour utiliser un fichier de format créé précédemment lors de


l'importation
> de données vers une instance de SQL Server, vous devez utiliser le
> commutateur -f avec l'utilitaire bcp ou la clause FORMATFILE avec
> l'instruction BULK INSERT. Par exemple, la commande de copie en bloc du
> contenu du fichier New_auth.dat vers la table authors2 de la base de


données
> pubs à l'aide d'un fichier de format préalablement créé (Authors.fmt)


est la
> suivante :
>
> bcp pubs..authors2 in
> c:new_auth.dat -fc:authors.fmt -Sservername -Usa -Ppassword
> L'instruction BULK INSERT peut utiliser les fichiers de format


sauvegardés
> par l'utilitaire bcp. Exemple :
>
> BULK INSERT pubs..authors2 FROM 'c:new_auth.dat'
> WITH (FORMATFILE = 'c:authors.fmt')
> Le fichier de format est un fichier texte délimité par des tabulations


et
> doté d'une structure particulière.
>
>
>
> Le tableau suivant décrit les structures de format de fichier.
>
> Champ Description
> Version Numéro de version de bcp.
> Nombre de champs Nombre de champs dans le fichier de données. Il


doit
> être identique pour toutes les lignes.
> Ordre des champs du fichier hôte Position de chaque champ dans le
> fichier de données. Le premier champ de la ligne correspond à la valeur


1,
> etc.
> Type de données du fichier hôte Type de données stockées dans le


champ
> particulier du fichier de données. Avec les fichiers de données ASCII,
> utilisez SQLCHAR ; pour les fichiers de données au format natif,


utilisez
> les types de données par défaut. Pour plus d'informations, voir Type de
> stockage de fichier.
> Longueur de préfixe Nombre de caractères du préfixe de longueur


pour
> le champ Les longueurs de préfixe autorisées sont les valeurs 0, 1, 2 et


4.
> Pour éviter de spécifier le préfixe de longueur, donnez-lui la valeur 0.


Un
> préfixe de longueur doit être spécifié si le champ contient des valeurs


de
> données NULL. Pour plus d'informations, voir Longueur de préfixe.
> Longueur des données du fichier hôte Longueur maximale, en octets,


du
> type des données stockées dans le champ particulier du fichier de


données.
> Pour plus d'informations, voir Longueur du champ.
> Indicateur de fin Caractère de séparation utilisé pour délimiter


les
> champs dans un fichier de données. Les indicateurs de fin communs sont


la
> virgule (,), la tabulation (t), et la fin de ligne (rn). Pour plus
> d'informations, voir Indicateur de fin de champ.
> Ordre des colonnes du serveur Ordre dans lequel les colonnes
> apparaissent dans la table SQL Server . Par exemple, si le quatrième


champ
> du fichier de données est mappé sur la sixième colonne d'une table SQL
> Server, alors la valeur de l'ordre des colonnes du serveur pour le


quatrième
> champ est 6. Pour éviter qu'une colonne dans la table ne reçoive des


données
> du fichier de données, fixez la valeur de l'ordre des colonnes du


serveur à
> 0.
> Nom de colonne du serveur Nom de la colonne pris dans la table SQL
> Server. Il n'est pas indispensable d'employer le nom réel du champ. La


seule
> condition requise est que le nom du champ dans fichier de format ne soit


pas
> vide.
> Collation Classement utilisé pour stocker des caractères et des
> données Unicode dans le fichier de données de copie en bloc.
>
>
>
>
> Remarque Il est possible de ne pas importer une colonne de la table si


le
> champ n'existe pas dans le fichier de données en spécifiant la valeur 0


pour
> les champs longueur de préfixe, longueur, ordre des colonnes du serveur


et
> en ne spécifiant pas d'indicateur de fin. Ceci établit effectivement que


le
> champ de données n'existe pas dans le fichier de données, et que la


colonne
> sur le serveur doit pas charger de données.
>
>
> Copie sélective des données
> Un fichier de format vous offre le moyen de réaliser des copies


sélectives
> de données en bloc à partir d'un fichier de données vers SQL Server.


Cela
> vous permet de transférer des données vers une table en cas de mauvaise
> correspondance entre les champs du fichier et les colonnes de la table.
> Cette approche peut être utilisée lorsque les champs du fichier sont :
>
> a.. inférieurs en nombre par rapport aux colonnes de la table ;
>
>
> b.. supérieurs en nombre par rapport aux colonnes de la table ;
>
>
> c.. dans un ordre différent de celui des colonnes de la table.
> En utilisant un fichier de format, il est possible de copier en bloc des
> données dans SQL Server sans qu'il soit nécessaire d'ajouter ou de


supprimer
> inutilement des données, ou d'ordonner de nouveau des données existantes
> dans le fichier.
>
> Les trois rubriques suivantes contiennent des exemples de copie de


données
> sélective. En ce qui concerne les trois exemples suivants, vous devez au
> préalable faire une copie de la table authors, appelée authors2, dans la
> base de données pubs. Pour créer une copie de la table authors, vous


devez
> exécuter ce qui suit :
>
> USE pubs
> GO
> SELECT * INTO authors2 FROM authors
> GO
>
> Voir aussi
>
> FormatFilePath Property
>
> ©1988-2000 Microsoft Corporation. Tous droits réservés.
> -----
>
>
>

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************



Avatar
Fred BROUARD
C'est pour cela Fabrice que lorsque je donne une formation MS SQL Server, je
fais un exo sur bcp... Ils découvrent que l'aide en ligne n'est pas toujours
parfaite !!!

Certes, je suis vicieux !!!

;-)

A +

Romelard Fabrice [MVP] a écrit:
A ben si les fichiers MSDN sont faux maintenant :)))
A qui peut-on faire confiance :)

Je retire donc ma réponse du fil :)

Fabrice

"Fred BROUARD" a écrit dans le message de
news:

Attention Fabrice, le fichier donné en exemple dans l'aide en ligne



(image)

contient des erreurs !

Pour ce qui est de ton problème "peugeot 404" il faudrait passer par une



table

d'import dont les colonnes ne sont pas typées (VARCHAR) et de faire un
remplacement des caractères virgule par point à l'aide d'un UPDATE.

A +

Romelard Fabrice [MVP] a écrit:

Bonjour,

Je pense qu'il vous faut ajouter des options voir éventuellement créer





un

fichier de format.
Je vous copie l'aide MSDN pour cet outil.
------

Administration de SQL Server

Utilisation de fichiers de format
Lors de la copie en bloc des données en mode interactif, l'utilitaire





bcp

vous invite à enregistrer des informations relatives au type de





stockage,

longueur de préfixe et de champ et les indicateurs de fin de champ et de
ligne. Le fichier utilisé pour stocker les informations de format pour
chaque champ dans le fichier de données est appelé le fichier de format





:

Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]
Bien que le nom par défaut du fichier de format soit Bcp.fmt, vous





pouvez

spécifier un nom différent si vous le souhaitez.

Ce fichier de format fournit les informations par défaut utilisées pour





la

copie en bloc des données du fichier vers une instance de Microsoft® SQL
ServerT ou la copie en bloc ultérieure des données de la table sans





avoir à

spécifier de nouveau le format. Lors de la copie en bloc des données





vers ou

à partir d'une instance de SQL Server avec un fichier de format





existant,

l'utilitaire bcp ne vous invite pas à fournir d'informations concernant





le

type de stockage du fichier, la longueur de préfixe ou l'indicateur de





fin

de champ, car ces valeurs ont déjà été enregistrées.

Pour utiliser un fichier de format créé précédemment lors de





l'importation

de données vers une instance de SQL Server, vous devez utiliser le
commutateur -f avec l'utilitaire bcp ou la clause FORMATFILE avec
l'instruction BULK INSERT. Par exemple, la commande de copie en bloc du
contenu du fichier New_auth.dat vers la table authors2 de la base de





données

pubs à l'aide d'un fichier de format préalablement créé (Authors.fmt)





est la

suivante :

bcp pubs..authors2 in
c:new_auth.dat -fc:authors.fmt -Sservername -Usa -Ppassword
L'instruction BULK INSERT peut utiliser les fichiers de format





sauvegardés

par l'utilitaire bcp. Exemple :

BULK INSERT pubs..authors2 FROM 'c:new_auth.dat'
WITH (FORMATFILE = 'c:authors.fmt')
Le fichier de format est un fichier texte délimité par des tabulations





et

doté d'une structure particulière.



Le tableau suivant décrit les structures de format de fichier.

Champ Description
Version Numéro de version de bcp.
Nombre de champs Nombre de champs dans le fichier de données. Il





doit

être identique pour toutes les lignes.
Ordre des champs du fichier hôte Position de chaque champ dans le
fichier de données. Le premier champ de la ligne correspond à la valeur





1,

etc.
Type de données du fichier hôte Type de données stockées dans le





champ

particulier du fichier de données. Avec les fichiers de données ASCII,
utilisez SQLCHAR ; pour les fichiers de données au format natif,





utilisez

les types de données par défaut. Pour plus d'informations, voir Type de
stockage de fichier.
Longueur de préfixe Nombre de caractères du préfixe de longueur





pour

le champ Les longueurs de préfixe autorisées sont les valeurs 0, 1, 2 et





4.

Pour éviter de spécifier le préfixe de longueur, donnez-lui la valeur 0.





Un

préfixe de longueur doit être spécifié si le champ contient des valeurs





de

données NULL. Pour plus d'informations, voir Longueur de préfixe.
Longueur des données du fichier hôte Longueur maximale, en octets,





du

type des données stockées dans le champ particulier du fichier de





données.

Pour plus d'informations, voir Longueur du champ.
Indicateur de fin Caractère de séparation utilisé pour délimiter





les

champs dans un fichier de données. Les indicateurs de fin communs sont





la

virgule (,), la tabulation (t), et la fin de ligne (rn). Pour plus
d'informations, voir Indicateur de fin de champ.
Ordre des colonnes du serveur Ordre dans lequel les colonnes
apparaissent dans la table SQL Server . Par exemple, si le quatrième





champ

du fichier de données est mappé sur la sixième colonne d'une table SQL
Server, alors la valeur de l'ordre des colonnes du serveur pour le





quatrième

champ est 6. Pour éviter qu'une colonne dans la table ne reçoive des





données

du fichier de données, fixez la valeur de l'ordre des colonnes du





serveur à

0.
Nom de colonne du serveur Nom de la colonne pris dans la table SQL
Server. Il n'est pas indispensable d'employer le nom réel du champ. La





seule

condition requise est que le nom du champ dans fichier de format ne soit





pas

vide.
Collation Classement utilisé pour stocker des caractères et des
données Unicode dans le fichier de données de copie en bloc.




Remarque Il est possible de ne pas importer une colonne de la table si





le

champ n'existe pas dans le fichier de données en spécifiant la valeur 0





pour

les champs longueur de préfixe, longueur, ordre des colonnes du serveur





et

en ne spécifiant pas d'indicateur de fin. Ceci établit effectivement que





le

champ de données n'existe pas dans le fichier de données, et que la





colonne

sur le serveur doit pas charger de données.


Copie sélective des données
Un fichier de format vous offre le moyen de réaliser des copies





sélectives

de données en bloc à partir d'un fichier de données vers SQL Server.





Cela

vous permet de transférer des données vers une table en cas de mauvaise
correspondance entre les champs du fichier et les colonnes de la table.
Cette approche peut être utilisée lorsque les champs du fichier sont :

a.. inférieurs en nombre par rapport aux colonnes de la table ;


b.. supérieurs en nombre par rapport aux colonnes de la table ;


c.. dans un ordre différent de celui des colonnes de la table.
En utilisant un fichier de format, il est possible de copier en bloc des
données dans SQL Server sans qu'il soit nécessaire d'ajouter ou de





supprimer

inutilement des données, ou d'ordonner de nouveau des données existantes
dans le fichier.

Les trois rubriques suivantes contiennent des exemples de copie de





données

sélective. En ce qui concerne les trois exemples suivants, vous devez au
préalable faire une copie de la table authors, appelée authors2, dans la
base de données pubs. Pour créer une copie de la table authors, vous





devez

exécuter ce qui suit :

USE pubs
GO
SELECT * INTO authors2 FROM authors
GO

Voir aussi

FormatFilePath Property

©1988-2000 Microsoft Corporation. Tous droits réservés.
-----






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************









--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Med Bouchenafa
Curieux de savoir ce qui ne va pas dans la documentation de BCP?

--
Bien cordialement
Med Bouchenafa

"Fred BROUARD" wrote in message
news:
Attention Fabrice, le fichier donné en exemple dans l'aide en ligne
(image) contient des erreurs !

Pour ce qui est de ton problème "peugeot 404" il faudrait passer par une
table d'import dont les colonnes ne sont pas typées (VARCHAR) et de faire
un remplacement des caractères virgule par point à l'aide d'un UPDATE.

A +

Romelard Fabrice [MVP] a écrit:
Bonjour,

Je pense qu'il vous faut ajouter des options voir éventuellement créer un
fichier de format.
Je vous copie l'aide MSDN pour cet outil.
------

Administration de SQL Server

Utilisation de fichiers de format
Lors de la copie en bloc des données en mode interactif, l'utilitaire bcp
vous invite à enregistrer des informations relatives au type de stockage,
longueur de préfixe et de champ et les indicateurs de fin de champ et de
ligne. Le fichier utilisé pour stocker les informations de format pour
chaque champ dans le fichier de données est appelé le fichier de format :

Do you want to save this format information in a file? [Y/n] y
Host filename: [bcp.fmt]
Bien que le nom par défaut du fichier de format soit Bcp.fmt, vous pouvez
spécifier un nom différent si vous le souhaitez.

Ce fichier de format fournit les informations par défaut utilisées pour
la
copie en bloc des données du fichier vers une instance de Microsoft® SQL
ServerT ou la copie en bloc ultérieure des données de la table sans avoir
à
spécifier de nouveau le format. Lors de la copie en bloc des données vers
ou
à partir d'une instance de SQL Server avec un fichier de format existant,
l'utilitaire bcp ne vous invite pas à fournir d'informations concernant
le
type de stockage du fichier, la longueur de préfixe ou l'indicateur de
fin
de champ, car ces valeurs ont déjà été enregistrées.

Pour utiliser un fichier de format créé précédemment lors de
l'importation
de données vers une instance de SQL Server, vous devez utiliser le
commutateur -f avec l'utilitaire bcp ou la clause FORMATFILE avec
l'instruction BULK INSERT. Par exemple, la commande de copie en bloc du
contenu du fichier New_auth.dat vers la table authors2 de la base de
données
pubs à l'aide d'un fichier de format préalablement créé (Authors.fmt) est
la
suivante :

bcp pubs..authors2 in
c:new_auth.dat -fc:authors.fmt -Sservername -Usa -Ppassword
L'instruction BULK INSERT peut utiliser les fichiers de format
sauvegardés
par l'utilitaire bcp. Exemple :

BULK INSERT pubs..authors2 FROM 'c:new_auth.dat'
WITH (FORMATFILE = 'c:authors.fmt')
Le fichier de format est un fichier texte délimité par des tabulations et
doté d'une structure particulière.



Le tableau suivant décrit les structures de format de fichier.

Champ Description
Version Numéro de version de bcp.
Nombre de champs Nombre de champs dans le fichier de données. Il
doit
être identique pour toutes les lignes.
Ordre des champs du fichier hôte Position de chaque champ dans le
fichier de données. Le premier champ de la ligne correspond à la valeur
1,
etc.
Type de données du fichier hôte Type de données stockées dans le
champ
particulier du fichier de données. Avec les fichiers de données ASCII,
utilisez SQLCHAR ; pour les fichiers de données au format natif, utilisez
les types de données par défaut. Pour plus d'informations, voir Type de
stockage de fichier.
Longueur de préfixe Nombre de caractères du préfixe de longueur
pour
le champ Les longueurs de préfixe autorisées sont les valeurs 0, 1, 2 et
4.
Pour éviter de spécifier le préfixe de longueur, donnez-lui la valeur 0.
Un
préfixe de longueur doit être spécifié si le champ contient des valeurs
de
données NULL. Pour plus d'informations, voir Longueur de préfixe.
Longueur des données du fichier hôte Longueur maximale, en octets,
du
type des données stockées dans le champ particulier du fichier de
données.
Pour plus d'informations, voir Longueur du champ.
Indicateur de fin Caractère de séparation utilisé pour délimiter
les
champs dans un fichier de données. Les indicateurs de fin communs sont la
virgule (,), la tabulation (t), et la fin de ligne (rn). Pour plus
d'informations, voir Indicateur de fin de champ.
Ordre des colonnes du serveur Ordre dans lequel les colonnes
apparaissent dans la table SQL Server . Par exemple, si le quatrième
champ
du fichier de données est mappé sur la sixième colonne d'une table SQL
Server, alors la valeur de l'ordre des colonnes du serveur pour le
quatrième
champ est 6. Pour éviter qu'une colonne dans la table ne reçoive des
données
du fichier de données, fixez la valeur de l'ordre des colonnes du serveur
à
0.
Nom de colonne du serveur Nom de la colonne pris dans la table SQL
Server. Il n'est pas indispensable d'employer le nom réel du champ. La
seule
condition requise est que le nom du champ dans fichier de format ne soit
pas
vide.
Collation Classement utilisé pour stocker des caractères et des
données Unicode dans le fichier de données de copie en bloc.




Remarque Il est possible de ne pas importer une colonne de la table si
le
champ n'existe pas dans le fichier de données en spécifiant la valeur 0
pour
les champs longueur de préfixe, longueur, ordre des colonnes du serveur
et
en ne spécifiant pas d'indicateur de fin. Ceci établit effectivement que
le
champ de données n'existe pas dans le fichier de données, et que la
colonne
sur le serveur doit pas charger de données.


Copie sélective des données
Un fichier de format vous offre le moyen de réaliser des copies
sélectives
de données en bloc à partir d'un fichier de données vers SQL Server. Cela
vous permet de transférer des données vers une table en cas de mauvaise
correspondance entre les champs du fichier et les colonnes de la table.
Cette approche peut être utilisée lorsque les champs du fichier sont :

a.. inférieurs en nombre par rapport aux colonnes de la table ;


b.. supérieurs en nombre par rapport aux colonnes de la table ;


c.. dans un ordre différent de celui des colonnes de la table.
En utilisant un fichier de format, il est possible de copier en bloc des
données dans SQL Server sans qu'il soit nécessaire d'ajouter ou de
supprimer
inutilement des données, ou d'ordonner de nouveau des données existantes
dans le fichier.

Les trois rubriques suivantes contiennent des exemples de copie de
données
sélective. En ce qui concerne les trois exemples suivants, vous devez au
préalable faire une copie de la table authors, appelée authors2, dans la
base de données pubs. Pour créer une copie de la table authors, vous
devez
exécuter ce qui suit :

USE pubs
GO
SELECT * INTO authors2 FROM authors
GO

Voir aussi

FormatFilePath Property

©1988-2000 Microsoft Corporation. Tous droits réservés.
-----






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************