Bonjour,
Je suis embêtée car il a été mis en place des exports de tables par bcp, pour les réimporter dans un autre environnement.
Lorsqu'on rajoute une colonne dans les tables à exporter le bcp plante.
Pour l'instant ce qu'on fait, c'est qu'on rajoute ces colonnes dans le fichiers de sortie et cela fait qu'il faut modifier l'import dans l'autre environnement.
Y at-il un moyen pour
a/ qu'on n'ait pas à retoucher le fichier de format lorsque la table change
b/ou que le fichier de sortie n'ait pas les nouvelles colonnes même si on doit changer le fichier de format.
voilà des précisions .
L'instruction d'export :
Le fichier tadi..xml auquel il manque la nouvelle colonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SET CNetEnv="DEV" bcp CDAP_%CNetEnv%.dbo.tadi out "TADI.DAT" -T -f "tadi..xml"
Le message d'erreur lorqu'on le joue sur une table ayant une colonne supplémentaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?xml version="1.0"?> <BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RECORD> <FIELD ID="1" xsi:type="CharFixed" LENGTH="9" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="2" xsi:type="CharFixed" LENGTH="25" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="3" xsi:type="CharFixed" LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="4" xsi:type="CharFixed" LENGTH="32" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="5" xsi:type="CharFixed" LENGTH="32" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="6" xsi:type="CharFixed" LENGTH="32" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="7" xsi:type="CharFixed" LENGTH="5" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="8" xsi:type="CharFixed" LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="9" xsi:type="CharFixed" LENGTH="2" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="10" xsi:type="CharFixed" LENGTH="2" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="11" xsi:type="CharFixed" LENGTH="1" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="12" xsi:type="CharFixed" LENGTH="15" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="13" xsi:type="CharFixed" LENGTH="23"/> <FIELD ID="14" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="23"/> </RECORD> <ROW> <COLUMN SOURCE="1" NAME="TADI_ADI_COD" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="2" NAME="TADI_MED_NOM" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="3" NAME="TADI_MED_PRE" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="4" NAME="TADI_MED_AD1" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="5" NAME="TADI_MED_AD2" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="6" NAME="TADI_MED_AD3" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="7" NAME="TADI_PTT_COD" xsi:type="SQLCHAR"/> <COLUMN SOURCE="8" NAME="TADI_MED_VIL" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="9" NAME="TADI_CRP_COD" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="10" NAME="TADI_MED_ACT" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="11" NAME="TADI_ALB_FLG" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="12" NAME="TADI_ADI_MAT" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="13" NAME="TADI_OUV_DAT" xsi:type="SQLDATETIME"/> <COLUMN SOURCE="14" NAME="TADI_FER_DAT" xsi:type="SQLDATETIME"/> </ROW> </BCPFORMAT>
Le fichier tadi..xml modifié avec la colonne en plus TADI_MED_TYP, qui exporte bien mais avec la colonne TADI_MED_TYP en trop.D:\soazig>bcp CDAP_%CNetEnv%.dbo.tadi out "TADI.DAT" -T -f "tadiinit..xml" -S et
ud06
SQLState = HY000, NativeError = 0
Error = [Microsoft][SQL Native Client]Le nombre de champs fourni pour l'opératio
n bcp est inférieur au nombre de colonnes sur le serveur.
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?xml version="1.0"?> <BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RECORD> <FIELD ID="1" xsi:type="CharFixed" LENGTH="9" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="2" xsi:type="CharFixed" LENGTH="25" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="3" xsi:type="CharFixed" LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="4" xsi:type="CharFixed" LENGTH="32" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="5" xsi:type="CharFixed" LENGTH="32" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="6" xsi:type="CharFixed" LENGTH="32" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="7" xsi:type="CharFixed" LENGTH="5" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="8" xsi:type="CharFixed" LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="9" xsi:type="CharFixed" LENGTH="2" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="10" xsi:type="CharFixed" LENGTH="2" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="11" xsi:type="CharFixed" LENGTH="1" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="12" xsi:type="CharFixed" LENGTH="15" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> <FIELD ID="13" xsi:type="CharFixed" LENGTH="23"/> <FIELD ID="14" xsi:type="CharFixed" LENGTH="23"/> <FIELD ID="15" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="1"/> </RECORD> <ROW> <COLUMN SOURCE="1" NAME="TADI_ADI_COD" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="2" NAME="TADI_MED_NOM" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="3" NAME="TADI_MED_PRE" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="4" NAME="TADI_MED_AD1" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="5" NAME="TADI_MED_AD2" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="6" NAME="TADI_MED_AD3" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="7" NAME="TADI_PTT_COD" xsi:type="SQLCHAR"/> <COLUMN SOURCE="8" NAME="TADI_MED_VIL" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="9" NAME="TADI_CRP_COD" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="10" NAME="TADI_MED_ACT" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="11" NAME="TADI_ALB_FLG" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="12" NAME="TADI_ADI_MAT" xsi:type="SQLVARYCHAR"/> <COLUMN SOURCE="13" NAME="TADI_OUV_DAT" xsi:type="SQLDATETIME"/> <COLUMN SOURCE="14" NAME="TADI_FER_DAT" xsi:type="SQLDATETIME"/> <COLUMN SOURCE="15" NAME="TADI_MED_TYP" xsi:type="SQLVARYCHAR"/> </ROW> </BCPFORMAT>
Soazig
Partager