Bonjour,
Je tente, mais comme d'habitude sans succès, d'utiliser la fonction OPENROWSET pour extraire les données se trouvant dans un fichier Excel 2003 (.xls) contenant 2 Feuilles : 'AddOn' et 'Modifiers', se trouvant dans le dossier D:\.
L'instruction est la suivante :
1 2 3 4 5 6 7
| SELECT *
FROM OPENROWSET
(
'Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\Addons_Modifiers.xls',
[Modifiers$]
) |
qui produit l'erreur suivante :
Msg 7302, Level 16, State 1, Line 1
Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".
Or ce fournisseur est installé puisque je le trouve sous le nœud [monInstance]|Server objects|Linked Servers|Providers.
Même chose avec :
1 2 3 4 5 6
| SELECT *
FROM OPENDATASOURCE
(
'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\Addons_Modifiers.xls";Extended properties=Excel 8.0'
)...[AddOn$] |
Il ne s'agit à priori pas d'un problème de droits en lecture sur le dossier, puisque si j'exécute :
EXEC xp_cmdshell 'ECHO toto > D:\test.txt'
puis :
1 2
| SELECT BulkColumn
FROM OPENROWSET(BULK 'D:\test.txt', SINGLE_CLOB) AS T |
j'obtiens bien :
BulkColumn
-----------
toto
J'aimerai voir un jour fonctionner les instructions OPENROWSET et OPENDATASOURCE sur un fichier Excel.
Cela vous semble-t-il possible ? 
@++
Partager