J'essaie de configurer une procédure stockée en tant que tâche d'agent SQL Server et cela me donne l'erreur suivante,
Impossible de charger en bloc car le fichier "P:\file.csv" n'a pas pu être ouvert. Code d'erreur du système d'exploitation 3 (impossible d'extraire le texte pour cette erreur. Raison: 15105). [SQLSTATE 42000] (erreur 4861)
Ce qui est drôle, c'est que la procédure stockée fonctionne correctement lorsque je l'exécute manuellement.
Le lecteur P: est un lecteur partagé sur Windows SQL Server à partir de LINUX via Samba Share et a été configuré en exécutant la commande suivante.
EXEC xp_cmdshell 'Net Use P: "\ lnxusanfsd01\Data" Mot de passe/utilisateur: nom d'utilisateur/Persistant: Oui'
Toute aide sur ce serait très apprécié
Je ne sais pas si vous avez résolu ce problème, mais j'avais le même problème. Si l'instance est locale, vous devez vérifier l'autorisation d'accéder au fichier. Toutefois, si vous accédez depuis votre ordinateur à un serveur (accès distant), vous devez chemin dans le serveur, de sorte que cela signifie pour inclure le fichier dans un répertoire du serveur, qui a résolu mon cas
exemple:
BULK INSERT Table
FROM 'C:\bulk\usuarios_prueba.csv' -- This is server path not local
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
);
Pour que cela reste simple, je viens de changer le répertoire à partir duquel je voulais importer les données dans un dossier local du serveur .
Le fichier se trouvant dans un dossier partagé, je viens de copier mes fichiers dans "c:\TEMP\Reports" sur mon serveur (la requête a été mise à jour dans BULK INSERT à partir du nouveau dossier). La tâche de l'agent s'est terminée avec succès :)
Enfin, après une longue période, je suis capable d'insérer automatiquement BULK via un travail d'agent.
Meilleures salutations.
J'ai résolu ce problème,
connectez-vous à l’ordinateur serveur sur lequel SQL Server est installé, obtenez-vous csv fichier sur le serveur et exécutez votre requête, le fichier .__ sera inséré. enregistrements.
Si vous donnez un problème de compatibilité de type de données, changez le type de données pour cette colonne.
Je suggère que le lecteur P: ne soit pas mappé pour le compte sous lequel le serveur SQL a démarré.
C'est probablement un problème d'autorisations, mais vous devez vous assurer d'essayer ces étapes pour dépanner:
sa
et ajoutez les commandes Net Use
et Net Use /delete
avant et aprèsN'oubliez pas d'annuler toutes les modifications (en particulier en tant que sa
). Si rien d'autre ne fonctionne, vous pouvez essayer de modifier le chargement en bloc en une tâche planifiée exécutée sur le serveur de base de données ou sur un autre serveur sur lequel bcp est installé.
Utilisation de la connexion SQL via l’authentification Windows: Un "double saut Kerberos" est en train de se produire: votre application cliente se connecte au serveur SQL Server; Un tel double saut tombe sous les restrictions de la délégation contrainte et vous finissez par accéder au partage en tant que connexion anonyme et donc à l'accès refusé.
Pour résoudre le problème, vous devez activer la délégation contrainte pour le compte de service SQL Server. Voir ici pour un bon post qui l'explique assez bien
SQL Server utilisant l'authentification SQL Vous devez créer une information d'identification pour votre connexion SQL et l'utiliser pour accéder à cette ressource réseau particulière. Vois ici