Bonjour,
Je rencontre une erreur lors de la requête BULK INSERT depuis mon programme Java:
Le fichier txt que j'essaye d'insérer via cette commande se situe sur un autre serveur que celui de la base de données. Le user qui se connecte à la DB a bien le rôle BULK ADMIN. Or il semble qu'un problème de droit subsiste. S'agit-il d'un problème de configuration système ?Cannot bulk load because the file "//xxx.xxx.xxx.xxx/partage/Fichiers plats/00001-Lamb/012010/ARTICLES_clean.txt" could not be opened. Operating system error code 5(Access is denied.).
De plus, une autre erreur se produit lorsque j'essaye d'exécuter la commande directement depuis le SERVER MS SQL:
Le codeMsg 4866, Level 16, State 8, Line 1
The bulk load failed. The column is too long in the data file for row 1, column 33. Verify that the field terminator and row terminator are specified correctly.
Msg 7301, Level 16, State 2, Line 1
Cannot obtain the required interface ("IID_IColumnsInfo") from OLE DB provider "BULK" for linked server "(null)".
Concernant ma table, voici les champs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part BULK INSERT dbo.RE_ARTICLE_ADH FROM '\\xxx.xxx.xxx.xxx\partage\Fichiers plats\00001-Lam\012010\ARTICLE_clean.txt' WITH (FIRSTROW = 2, FIELDTERMINATOR = ';', ROWTERMINATOR = '\r\n')
Voici un extrait du contenu de mon fichier:
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 [ID_DATE] int NOT NULL, [ANNEE] int NOT NULL, [MOIS] int NOT NULL, [ID_ADHERENT] int NOT NULL, [LIB_ADHERENT] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NOT NULL, [ID_ENTREPOT] int NOT NULL, [LIB_ENTREPOT] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [ID_FICHIER] int NOT NULL, [CODE_ARTICLE_ADH] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NOT NULL, [LIB_ARTICLE_PRINCIPAL_ADH] varchar(100) COLLATE SQL_Latin1_General_CP437_BIN2 NOT NULL, [LIB_ARTICLE_SECONDAIRE_ADH1] varchar(100) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [CONDITIONNEMENT] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [CONTENANCE] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [CONTENANT] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [ID_STATUT] int NULL, [LIB_STATUT] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [ID_ARTICLE_C10] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [TYPE_CONDITIONNEMENT] varchar(250) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [DEGRE] varchar(10) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [ID_ANOMALIE] int NULL, [LIB_ANOMALIE] varchar(100) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [VAL_ANOMALIE] varchar(250) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [ID_SCORING_ART] int NULL, [NB_COL_PARS_ARTICLE] int NULL, [NB_LIGNE_SCORE_ARTICLE] int NULL, [SOURCE] varchar(50) COLLATE SQL_Latin1_General_CP437_BIN2 NULL, [DATE_CREA] date NOT NULL, [NB_MAJ] int NULL, [DATE_MAJ_NW] date NULL, [ID_EXEC] int NULL, [ID_DF] int NULL, [ID_JOB] int NULL, [DATE_MAJ_DQM] date NULL
20110103;2011;01;123456;'Lamb';654321;'Entrepot1';1;20;'AST 24x25cl 5.0ø';;'24';'.25';;;;;;;;;;;;;'PF';;;;;;;
Avec en fin de ligne un \n. Ce fichier est créé grâce à mon programme Java. J'extrait des données brutes d'un fichier plat, et je recréé un nouveau fichier en ordonnant les données pour l'intégration dans la DB. Mais rien ne passe...
Merci par avance pour votre aide,
Thibault
Partager