BCP : ne pas importer une colonne
Salut,
J'essaye avec BCP de faire un import en skippant la dernière colonne du fichier d'export : mais ça ne marche pas...
Base de test source : [Test_new]
Table de test source: [dbo].[ZZTest]
Code:
1 2 3 4 5
| CREATE TABLE [dbo].[ZZTest](
[ID] [numeric](3, 0) NOT NULL,
[NAME] [nchar](10) NOT NULL
) ON [PRIMARY]
GO |
Base de test cible : [Test]
Table de test cible: [dbo].[ZZTest]
Code:
1 2 3 4 5
| CREATE TABLE [dbo].[ZZTest](
[ID] [numeric](3, 0) NOT NULL,
[NAME] [nchar](10) NOT NULL
) ON [PRIMARY]
GO |
Export de la structure de la table source sans les données, avec son format uniquement.
Code:
BCP Test_new.dbo.ZZTest format nul -c -f C:\SQL2019\Test_Out_Format.fmt -T -S localhost\MSSQLSERVER01
Contenu du fichier de format.
Code:
1 2 3 4
| 14.0
2
1 SQLCHAR 0 41 "\t" 1 ID ""
2 SQLCHAR 0 20 "\r\n" 2 NAME SQL_Latin1_General_CP1_CI_AS |
Je le modifie en enlevant \t\r\n et en remplaçant 2 par 0 avant NAME.
Code:
1 2 3 4
| 14.0
2
1 SQLCHAR 0 41 "" 1 ID ""
2 SQLCHAR 0 20 "" 0 NAME SQL_Latin1_General_CP1_CI_AS |
Génération du fichier des données source.
Code:
BCP [Test_new].[dbo].[ZZTest] out C:\SQL2019\Test_Out.txt -S localhost\MSSQLSERVER01 -T b1000 t"," -c
Contenu de celui-ci :
1,FRANCE
1,FRANCE
1,FRANCE
1,FRANCE
1,FRANCE
1,FRANCE
...
Contenu de la table cible
Code:
1 2
| SELECT count(*) from [Test].[dbo].[ZZTest];
0 |
Import en me basant sur le fichier format.
Code:
1 2 3 4 5 6 7 8
| BCP [Test].[dbo].[ZZTest] in C:\SQL2019\Test_Out.txt -f C:\SQL2019\Test_Out_Format_Modif.fmt -S localhost\MSSQLSERVER01 -T
Starting copy...
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
... |
Si vous voyiez le pb... merci pour votre aide.
Ikebukuro