Maison > base de données > tutoriel mysql > Pourquoi BULK INSERT n'accepte-t-il pas les chemins de fichiers variables dans les procédures stockées ?

Pourquoi BULK INSERT n'accepte-t-il pas les chemins de fichiers variables dans les procédures stockées ?

Susan Sarandon
Libérer: 2024-12-26 22:47:09
original
234 Les gens l'ont consulté

Why Doesn't BULK INSERT Accept Variable File Paths in Stored Procedures?

Insertion groupée à l'aide de procédures stockées : dépannage

Lors d'une tentative d'insertion groupée de données à l'aide d'une procédure stockée, un développeur a rencontré des erreurs de syntaxe. L'objectif était de répliquer une requête BULK INSERT fonctionnelle dans une procédure. Voici une analyse du problème et de sa résolution.

Le problème survient lorsque vous tentez de transmettre un nom de fichier en tant que variable à la commande BULK INSERT dans la procédure stockée. Malheureusement, il s'agit d'une opération non prise en charge par BULK INSERT.

Voici un exemple de tentative infructueuse utilisant une variable :

DECLARE @filename VARCHAR(255)
SET @filename = 'e:-digit Commercial.csv'

BULK INSERT ZIPCodes
FROM @filename
WITH
Copier après la connexion

Au lieu de cela, la commande BULK INSERT attend un chemin de fichier codé en dur . Pour contourner cette limitation, envisagez de construire l'instruction BULK INSERT sous la forme d'une chaîne avec un nom de fichier fixe et de l'exécuter en tant que SQL dynamique.

DECLARE @filepath NVARCHAR(500)
SET @filepath = N'e:-digit Commercial.csv'

DECLARE @bulkinsert NVARCHAR(2000)

SET @bulkinsert =
       N'BULK INSERT ZIPCodes FROM ''' +
       @filepath +
       N''' WITH (FIRSTROW = 2, FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')'

EXEC sp_executesql @bulkinsert
Copier après la connexion

En utilisant du SQL dynamique, l'instruction construite peut être exécutée, résolvant ainsi le problème. erreurs de syntaxe rencontrées dans l'implémentation originale de la procédure stockée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal