J'ai un ordinateur de développement "A". Et j'ai un serveur SQL "B".
My SQL Server est un serveur Microsoft SQL 2019.
Sur le serveur B, j'ai une base de données avec une procédure stockée, qui charge en masse des données à partir d'un fichier texte (en utilisant la commande BULK INSERT).
J'ai maintenant créé un projet SSIS sur le serveur A, qui appelle la procédure stockée sur le serveur B à l'aide de la tâche "Execute SQL Task". La connexion de la tâche pointe vers la base de données du serveur B. J'ai essayé d'utiliser la connexion OLE DB et ADO.
Lorsque je place mon fichier texte sur le serveur B et que je fais référence au fichier de la manière suivante D:\myFolder\myFile.txt
tout fonctionne bien.
Lorsque je place mon fichier texte sur le serveur A et que je référence le fichier de la manière suivante \\\A\myShare\myFile.txt
il échoue. L'erreur que je reçois est la suivante :
[Exécuter une tâche SQL] Erreur : L'exécution de la requête "exec BulkInsert ' \\A\myShare\myFile.txt '" a échoué avec l'erreur suivante : "Impossible bulk load because the file " \\A\myShare\myFile.txt "ne pouvait pas être ouvert. Code d'erreur du système d'exploitation 5 (accès refusé.)". Raisons possibles de l'échec de raisons possibles de l'échec : Problèmes avec la requête, la propriété "ResultSet" n'est pas définie. correctement, paramètres mal définis ou connexion mal établie. correctement.
J'ai essayé de me connecter au serveur B et, via un explorateur de fichiers, d'ouvrir le fichier en utilisant le chemin ci-dessus. Cela fonctionne bien. Et oui, je suis connecté en tant que même utilisateur sur les deux serveurs A et B.
J'ai également essayé de donner à "Tout le monde" un accès en lecture/écriture au partage, mais toujours le même mauvais résultat.
Ce qui m'intéresse, c'est de savoir comment résoudre ce problème, en utilisant l'appel de la procédure stockée - je ne souhaite pas reconstruire sa fonctionnalité dans SSIS (la procédure stockée est gérée par une société externe et elle peut la modifier à sa guise, mais nous sommes d'accord sur la façon dont je peux l'appeler).
D'après ce que j'ai lu chez Microsoft, il ne devrait pas y avoir de problème si vous appelez BULK INSERT en utilisant un chemin UNC.