Bonjour à toutes et tous,
Je sèche lamentablement sur l'utilisation paramétrée de l'instruction OPENROWSET(BULK ...)
J'ai des fichiers d'archives que je peux lire comme ceci :
SELECT * FROM OPENROWSET(BULK 'D:\200803.bulk', FORMATFILE = 'D:\200803.fmt') AS data
Pour me simplifier la vie, je souhaitais paramétrer cette lecture d'archives à l'aide d'une fonction que j'imaginais comme ceci :
1 2 3 4 5 6
| ALTER FUNCTION [dbo].[bulkArchive]
(@idArchive varchar(50))
RETURNS table
AS
RETURN
SELECT * FROM OPENROWSET(BULK 'D:\' + @idArchive + '.bulk', FORMATFILE = 'D:\' + @idArchive + '.fmt') AS data |
Et que j'aurais pu facilement utiliser dans un SELECT :
SELECT * FROM dbo.bulkArchive('200803')
Malheureusement l'utilisation de variables dans OPENROWSET n'est pas permise et donc impossible d'écrire ma fonction.
La solution serait peut-être d'utiliser du SQL dynamique dans ma fonction mais je ne vois pas comment faire. Est-ce que quelqu'un aurait une idée ?
D'avance merci pour votre aide.
Stéphane
Partager