Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur avec Bulk insert et texte vers date

5 réponses
Avatar
Damien
Bonjour,

Dans un lot DTS, je me sert d'une tâche d'insertion en bloc pour importer
des données d'un fichier texte vers une table sur SQL Server 2000 SP3. On
peut faire la même chose avec l'utilitaire bcp, mais je souhaite passer par
DTS.

Voici le script de la table de destination :

CREATE TABLE [dbo].[TMP] (
[CTCDEB] [smalldatetime] NULL,
[CTCFIN] [smalldatetime] NULL,
) ON [PRIMARY]
GO

Voici un exemple du fichier à importer

"CTCDEB","CTCFIN"
9/1/2003,9/30/2003
8/4/2003,8/30/2003
9/1/2003,9/6/2003
8/18/2003,8/30/2003
3/31/2003,6/27/2003
3/31/2003,6/27/2003
3/31/2003,6/27/2003

J'ai essayé plein de combinaisons, impossible d'importer ces données dans la
table.
Les messages d'erreurs sont au choix :
Erreur de conversion de données à insérer en bloc (discordance de type) pour
la ligne 1 colonne 1 (CTCDEB)
ou
Echec de l'insertion en bloc : colonne trop longue dans le fichier de
données pour la ligne 1, colonne 1. Assurez-vous que la fin du champ et de
la ligne sont correctement spécifiés.

Ce que j'ai fait bien sûr..

Merci de votre aide

Damien

5 réponses

Avatar
Med Bouchenafa[MVP]
C'est probablement un problème de format de date
Pour t'en rendre compte, regarde ce que retourne
SELECT isdate('9/30/2003')
Cela te dira si SQL/Server comprend ou non ton format de date

Essaye de changer le format par
SET DATEFORMAT mdy


--
Salutations
Med Bouchenafa
TETRASET
75015 Paris


"Damien" wrote in message
news:3f793699$0$27051$
Bonjour,

Dans un lot DTS, je me sert d'une tâche d'insertion en bloc pour importer
des données d'un fichier texte vers une table sur SQL Server 2000 SP3. On
peut faire la même chose avec l'utilitaire bcp, mais je souhaite passer


par
DTS.

Voici le script de la table de destination :

CREATE TABLE [dbo].[TMP] (
[CTCDEB] [smalldatetime] NULL,
[CTCFIN] [smalldatetime] NULL,
) ON [PRIMARY]
GO

Voici un exemple du fichier à importer

"CTCDEB","CTCFIN"
9/1/2003,9/30/2003
8/4/2003,8/30/2003
9/1/2003,9/6/2003
8/18/2003,8/30/2003
3/31/2003,6/27/2003
3/31/2003,6/27/2003
3/31/2003,6/27/2003

J'ai essayé plein de combinaisons, impossible d'importer ces données dans


la
table.
Les messages d'erreurs sont au choix :
Erreur de conversion de données à insérer en bloc (discordance de type)


pour
la ligne 1 colonne 1 (CTCDEB)
ou
Echec de l'insertion en bloc : colonne trop longue dans le fichier de
données pour la ligne 1, colonne 1. Assurez-vous que la fin du champ et de
la ligne sont correctement spécifiés.

Ce que j'ai fait bien sûr..

Merci de votre aide

Damien





Avatar
Damien
Maginifique....

J'avais essayé ça, mais débutant sur SQL server, avec la casse en moins (SET
DATEFORMAT MDY)

ce qui ne marchait pas..

Merci beaucoup

@+

Damien

"Med Bouchenafa[MVP]" a écrit dans le message de
news:
C'est probablement un problème de format de date
Pour t'en rendre compte, regarde ce que retourne
SELECT isdate('9/30/2003')
Cela te dira si SQL/Server comprend ou non ton format de date

Essaye de changer le format par
SET DATEFORMAT mdy


--
Salutations
Med Bouchenafa
TETRASET
75015 Paris


"Damien" wrote in message
news:3f793699$0$27051$
> Bonjour,
>
> Dans un lot DTS, je me sert d'une tâche d'insertion en bloc pour


importer
> des données d'un fichier texte vers une table sur SQL Server 2000 SP3.


On
> peut faire la même chose avec l'utilitaire bcp, mais je souhaite passer
par
> DTS.
>
> Voici le script de la table de destination :
>
> CREATE TABLE [dbo].[TMP] (
> [CTCDEB] [smalldatetime] NULL,
> [CTCFIN] [smalldatetime] NULL,
> ) ON [PRIMARY]
> GO
>
> Voici un exemple du fichier à importer
>
> "CTCDEB","CTCFIN"
> 9/1/2003,9/30/2003
> 8/4/2003,8/30/2003
> 9/1/2003,9/6/2003
> 8/18/2003,8/30/2003
> 3/31/2003,6/27/2003
> 3/31/2003,6/27/2003
> 3/31/2003,6/27/2003
>
> J'ai essayé plein de combinaisons, impossible d'importer ces données


dans
la
> table.
> Les messages d'erreurs sont au choix :
> Erreur de conversion de données à insérer en bloc (discordance de type)
pour
> la ligne 1 colonne 1 (CTCDEB)
> ou
> Echec de l'insertion en bloc : colonne trop longue dans le fichier de
> données pour la ligne 1, colonne 1. Assurez-vous que la fin du champ et


de
> la ligne sont correctement spécifiés.
>
> Ce que j'ai fait bien sûr..
>
> Merci de votre aide
>
> Damien
>
>
>




Avatar
Damien
Re,

Bon, alors ça marche dans l'analyseur de requête avec

set dateformat mdy

puis

bulk insert dtw..tmp from 'D:DevDTWBulkTMP_1.txt'
with (
FIRSTROW = 2,
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = 'n'
)


Mais rien à faire dans le designer de lot DTS.

Des idées ??

Merci

Damien


"Damien" a écrit dans le message de
news:3f79575f$0$27015$
Maginifique....

J'avais essayé ça, mais débutant sur SQL server, avec la casse en moins


(SET
DATEFORMAT MDY)

ce qui ne marchait pas..

Merci beaucoup

@+

Damien

"Med Bouchenafa[MVP]" a écrit dans le message de
news:
> C'est probablement un problème de format de date
> Pour t'en rendre compte, regarde ce que retourne
> SELECT isdate('9/30/2003')
> Cela te dira si SQL/Server comprend ou non ton format de date
>
> Essaye de changer le format par
> SET DATEFORMAT mdy
>
>
> --
> Salutations
> Med Bouchenafa
> TETRASET
> 75015 Paris
>
>
> "Damien" wrote in message
> news:3f793699$0$27051$
> > Bonjour,
> >
> > Dans un lot DTS, je me sert d'une tâche d'insertion en bloc pour
importer
> > des données d'un fichier texte vers une table sur SQL Server 2000 SP3.
On
> > peut faire la même chose avec l'utilitaire bcp, mais je souhaite


passer
> par
> > DTS.
> >
> > Voici le script de la table de destination :
> >
> > CREATE TABLE [dbo].[TMP] (
> > [CTCDEB] [smalldatetime] NULL,
> > [CTCFIN] [smalldatetime] NULL,
> > ) ON [PRIMARY]
> > GO
> >
> > Voici un exemple du fichier à importer
> >
> > "CTCDEB","CTCFIN"
> > 9/1/2003,9/30/2003
> > 8/4/2003,8/30/2003
> > 9/1/2003,9/6/2003
> > 8/18/2003,8/30/2003
> > 3/31/2003,6/27/2003
> > 3/31/2003,6/27/2003
> > 3/31/2003,6/27/2003
> >
> > J'ai essayé plein de combinaisons, impossible d'importer ces données
dans
> la
> > table.
> > Les messages d'erreurs sont au choix :
> > Erreur de conversion de données à insérer en bloc (discordance de


type)
> pour
> > la ligne 1 colonne 1 (CTCDEB)
> > ou
> > Echec de l'insertion en bloc : colonne trop longue dans le fichier de
> > données pour la ligne 1, colonne 1. Assurez-vous que la fin du champ


et
de
> > la ligne sont correctement spécifiés.
> >
> > Ce que j'ai fait bien sûr..
> >
> > Merci de votre aide
> >
> > Damien
> >
> >
> >
>
>




Avatar
Med Bouchenafa [MVP]
Cela devrait fonctionner
Je viens de le tester (SQL2000 SP3)

--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"Damien" a écrit dans le message de news:
3f796e77$0$27051$
Re,

Bon, alors ça marche dans l'analyseur de requête avec

set dateformat mdy

puis

bulk insert dtw..tmp from 'D:DevDTWBulkTMP_1.txt'
with (
FIRSTROW = 2,
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = 'n'
)


Mais rien à faire dans le designer de lot DTS.

Des idées ??

Merci

Damien


"Damien" a écrit dans le message de
news:3f79575f$0$27015$
> Maginifique....
>
> J'avais essayé ça, mais débutant sur SQL server, avec la casse en moins
(SET
> DATEFORMAT MDY)
>
> ce qui ne marchait pas..
>
> Merci beaucoup
>
> @+
>
> Damien
>
> "Med Bouchenafa[MVP]" a écrit dans le message de
> news:
> > C'est probablement un problème de format de date
> > Pour t'en rendre compte, regarde ce que retourne
> > SELECT isdate('9/30/2003')
> > Cela te dira si SQL/Server comprend ou non ton format de date
> >
> > Essaye de changer le format par
> > SET DATEFORMAT mdy
> >
> >
> > --
> > Salutations
> > Med Bouchenafa
> > TETRASET
> > 75015 Paris
> >
> >
> > "Damien" wrote in message
> > news:3f793699$0$27051$
> > > Bonjour,
> > >
> > > Dans un lot DTS, je me sert d'une tâche d'insertion en bloc pour
> importer
> > > des données d'un fichier texte vers une table sur SQL Server 2000 SP3.
> On
> > > peut faire la même chose avec l'utilitaire bcp, mais je souhaite
passer
> > par
> > > DTS.
> > >
> > > Voici le script de la table de destination :
> > >
> > > CREATE TABLE [dbo].[TMP] (
> > > [CTCDEB] [smalldatetime] NULL,
> > > [CTCFIN] [smalldatetime] NULL,
> > > ) ON [PRIMARY]
> > > GO
> > >
> > > Voici un exemple du fichier à importer
> > >
> > > "CTCDEB","CTCFIN"
> > > 9/1/2003,9/30/2003
> > > 8/4/2003,8/30/2003
> > > 9/1/2003,9/6/2003
> > > 8/18/2003,8/30/2003
> > > 3/31/2003,6/27/2003
> > > 3/31/2003,6/27/2003
> > > 3/31/2003,6/27/2003
> > >
> > > J'ai essayé plein de combinaisons, impossible d'importer ces données
> dans
> > la
> > > table.
> > > Les messages d'erreurs sont au choix :
> > > Erreur de conversion de données à insérer en bloc (discordance de
type)
> > pour
> > > la ligne 1 colonne 1 (CTCDEB)
> > > ou
> > > Echec de l'insertion en bloc : colonne trop longue dans le fichier de
> > > données pour la ligne 1, colonne 1. Assurez-vous que la fin du champ
et
> de
> > > la ligne sont correctement spécifiés.
> > >
> > > Ce que j'ai fait bien sûr..
> > >
> > > Merci de votre aide
> > >
> > > Damien
> > >
> > >
> > >
> >
> >
>
>




Avatar
Damien
"Med Bouchenafa [MVP]" a écrit dans le message de
news:
Cela devrait fonctionner
Je viens de le tester (SQL2000 SP3)





Hello,

Ben, non, il n'y a rien à faire

Pour info, voici le descriptif de ma tâche d'insertion en bloc :

Table de destination : [DTW].[dbo].[TMP]
Fichier de source de données : D:DevDTWBulkTMP_1.txt
Spécifier le format
- séparateur de lignes {LF}
- séparateur de colonnes : virgule
Options avancées
- page de code OEM
- type du fichier de données : char
tout le reste est décoché..

Je ne comprends vraiment pas

Le seul moyen est de transformer les colonnes de destination en texte..mais
bon, ce n'est pas l'idéal

Merci en tout cas

Damien