|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2010 Messages : 3 ![]() |
Bonjour,
Voici mon cas : j'ai une base de données SQL Server sur un serveur A, et je veux importer le contenu des tables de cette base dans des tables vides d'une autre BDD sur un autre serveur B. J’ai donc exporté mes données à l’aide de BCP à l’aide de l’option –N. J’ai choisi cette option (elle n’est peut-être pas idéale…) car mes tables peuvent contenir des champs ntext avec des caractères du types « é », « à » etc… Code :
BCP BASE_A.dbo.TABLE1 out E:\Fichier.txt -t '|' -r \n -SserveurA -Ulogin -Pmdp -N -e E:\erreur_Fichier.txt
Code sql :
bulk INSERT tampon_Table1 FROM E:\Fichier.txt WITH ( datafiletype='widenative',fieldterminator='|', rowterminator='\n',firstrow=1) Voici mon message d’erreur : Code :
Voici le contenu de la première ligne de mon fichier .txt : Code :
@ 0 1 4 8 7 b d e 8 1 5 a 4 e 0 8 b f 6 0 e 1 d 7 0 3 6 d 6 d 0 e | | | | | | | | Pour info, je ne suis pas très à l’aise avec le choix des options suivantes: Pour le BCP : -c ou –w ou –N Ainsi que –C code_page Pour le BULK INSERT : codepage ACP ou OEM ou RAW ainsi que DATAFILETYPE char, Natif, widechar, widenative Si vous avez des explications sachant que je suis débutante ! Merci d’avance pour votre aide ! je ne cache pas que je suis sur un projet court en délai |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() David BAFFALEUFInscription : février 2008 Messages : 605 ![]() |
Essayes de sortir la table sans rowterminator, et la réimporter sans rowterminator. Pour info de mon côté un bcp out -t'|' -N suivi d'un bcp in -t'|' -N fonctionne avec les données que tu nous as fournies.
__________________
David B. |
|
00
|
|
|
#3 |
|
Membre chevronné
![]() David BAFFALEUFInscription : février 2008 Messages : 605 ![]() |
Bon alors finalement:
Code :
BCP BASE_A.dbo.TABLE1 out E:\Fichier.txt -t '|' -r \n -SserveurA -Ulogin -Pmdp -w -e E:\erreur_Fichier.txt
Code :
bulk INSERT tampon_Table1 FROM E:\Fichier.txt WITH ( datafiletype='widechar',fieldterminator='|', rowterminator='\n',firstrow=1) "(...) widenative: Native (database) data types, except in char, varchar, and text columns, in which data is stored as Unicode. Create the widenative data file by bulk importing data from SQL Server using the bcp utility. (...)"
__________________
David B. |
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2010 Messages : 3 ![]() |
Merci pour votre aide. J’ai eu également l’occasion de tester l’import par BCP. Cependant j’ai des contraintes qui me sont imposées et je dois passer par bulk insert.
Si je comprends bien votre 2nd message, vous m’indiquez de remplacer l’argument –N par l’argument –w ? J’avais également pu tester cette solution et elle fonctionne bien. Cependant, d’après l’aide en ligne –N est « une option qui remplace avantageusement –w ». C’est pour cela que j’ai utilisé –N. Idem pour l’utilisation de widenative vs widechar, qui d’après l’aide est « une alternative plus performante » et correspond à mon cas « transférer des données d’un server SQL Server à un autre ». Mais je n’ai peut-être pas la bonne réflexion et comme j’ai pu l’indiquer, je suis novice sur le sujet... |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() David BAFFALEUFInscription : février 2008 Messages : 605 ![]() |
Tu as raison, j'avais mal interprété la note.
Est-ce que le fait d'utiliser widechar est beaucoup plus pénalisant ? Je ne m'explique pas pourquoi SQL Server sort une erreur même en ne chargeant qu'une seule ligne.
__________________
David B. |
|
00
|
Copyright © 2000-2012 - www.developpez.com