Bonjour et merci d'avance pour votre aide,
Avant tout, Je précise que je simplifie le problème pour une meilleur compréhension :
Alors, je me trouve dans une impasse. J'ai une base de données SQL Server 2008 dans laquelle se trouve une table :
Pour entrer des données dans cette table, j'ai comme point d'entré un fichier CSV que je ne peux pas toucher. A titre d'exemple je vous pose la première ligne de ce fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE TableDate ( ID int NOT NULL, DATE1 date NULL, DATE2 date NULL, DATE3 date NULL)
Pour insérer les lignes de ce fichier dans ma table j'utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 123;01/09/11 00:00:00,000000000;15/09/11 00:00:00,000000000;20/09/11 00:00:00,000000000
Enfin l'erreur retournée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BULK INSERT TableDate FROM 'c:\Scripts SQL\export.csv' WITH ( FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, DATAFILETYPE = 'char' ) GO
J'ai bien compris que le problème venait de la date. Le type date n'accepte pas la complexité de '15/09/11 00:00:00,000000000'. J'ai donc essayé les autres types :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Msg 4864, Level 16, State 1, Line 2 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 2 (DATE1).
- datetime : marche pas
- timestamp : marche pour DATE1 et le problème se décale à DATE2. Si je mets tout en timestamp, une erreur me dit que je n'ai droit qu'à un seul timestamp.
Je suis donc bloqué. Je pense que la solution serai de pouvoir, à la création de la base, préciser le format de la date qui va être passé lors de l'INSERT. un format de type jj/mm/aa hh:mm:ss,ms
Quelqu'un peut-il m'aider ?
Merci
Partager