OVH Cloud OVH Cloud

Instruction Bulk Insert

2 réponses
Avatar
JIELPE53
Re-Bonjour à tous,

je rencontre une difficulté dans un bloc BULK INSERT.

Le ficheir source (fichier texte) que je dois aller chercher est à un
emplacement que je dois rendre paramétrable. Je veux donc passer ce chemin
dans une variable (varChemin) suivi du nom du fichier ('NomFic.txt')...

Je ne dois pas utiliser la bonne syntaxe :

BULK INSERT Table1
FROM varChemin + 'NomFic.txt'
WITH
(
FIELDTERMINATOR = ',',
KEEPIDENTITY
)

Quelqu'un peut-il m'aider ?

Merci.

2 réponses

Avatar
Fred BROUARD
JIELPE53 a écrit :
Re-Bonjour à tous,

je rencontre une difficulté dans un bloc BULK INSERT.

Le ficheir source (fichier texte) que je dois aller chercher est à un
emplacement que je dois rendre paramétrable. Je veux donc passer ce chemin
dans une variable (varChemin) suivi du nom du fichier ('NomFic.txt')...

Je ne dois pas utiliser la bonne syntaxe :

BULK INSERT Table1
FROM varChemin + 'NomFic.txt'
WITH
(
FIELDTERMINATOR = ',',
KEEPIDENTITY
)

Quelqu'un peut-il m'aider ?

Merci.



La commande BULK INSERT n'admet pas de variable pour la définition du path.
Optez pour du SQL dynamique.

DECLARE @SQL VARCHAR(8000)

SET @SQL = 'BULK INSERT Table1 FROM ''' + @varChemin + 'NomFic.txt'''
+ ' WITH (FIELDTERMINATOR = '','', KEEPIDENTITY )'

EXEC (@SQL)

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
JIELPE53
Un grand merci Monsieur le Spécialiste...

ça fonctionne du premier coup !!!

"Fred BROUARD" a écrit :

JIELPE53 a écrit :
> Re-Bonjour à tous,
>
> je rencontre une difficulté dans un bloc BULK INSERT.
>
> Le ficheir source (fichier texte) que je dois aller chercher est à un
> emplacement que je dois rendre paramétrable. Je veux donc passer ce chemin
> dans une variable (varChemin) suivi du nom du fichier ('NomFic.txt')...
>
> Je ne dois pas utiliser la bonne syntaxe :
>
> BULK INSERT Table1
> FROM varChemin + 'NomFic.txt'
> WITH
> (
> FIELDTERMINATOR = ',',
> KEEPIDENTITY
> )
>
> Quelqu'un peut-il m'aider ?
>
> Merci.

La commande BULK INSERT n'admet pas de variable pour la définition du path.
Optez pour du SQL dynamique.

DECLARE @SQL VARCHAR(8000)

SET @SQL = 'BULK INSERT Table1 FROM ''' + @varChemin + 'NomFic.txt'''
+ ' WITH (FIELDTERMINATOR = '','', KEEPIDENTITY )'

EXEC (@SQL)

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************