Importation de plusieurs valeurs dans une variable séparées par un ";"

Le
Fino
Bonjour,

J'ai un fichier texte dans lequel j'ai sur chaque ligne des données séparées
par des ";"
ex :

Ligne 1 -> A;B;C;;;;;D;Z
Ligne 2 -> O;P;Q;R;S;T;U;;;;;;;;;;;;;;

J'ai donc 2 types de lignes avec un nombres de colonne différents.

Je voudrais :

1/ Pouvoir lire ma première ligne mettre ces données dans une table et
rajouter une valeur date
2/ Lire la deuxième ligne et mettre les données de celle ci dans une autre
table en rajouter une valeur @@identity récupérée lors de l'insertion de la
première ligne

Je sèche terriblement sur comme faire je tourne en rond.

Si vous pouvez m'aider :)
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe Bouchardy
Le #11879261
Bonjour Fino,



L'idée de la solution présentée ici est d'obtenir une structure homogène
afin de pouvoir manipuler les donner.



Dans un premier temps il faut modifier votre fichier afin d'avoir le même
nombre de colonne pour chaque ligne et ajouter un identifiant de type de
ligne qui vous permettra soit d'ajouter une date soit d'ajouter l'identifiant
de l'enregistrement précédent selon vos régles de gestion.



Une fois les fichiers CSV ou TXT régénéré vous pouvez utiliser l'instruction
BULK INSERT pour monter votre fichier plat en brute dans un table
temporaire.



BULK INSERT CSVTest

FROM 'C:TESTtest1.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = 'n')



Une fois la table CSVTest alimentée vous n'avez plus besoin de votre fichier
plat et vous pouvez exécuter une SP sur votre table pour alimenté les tables
permanentes.



Si vous ne souhaitez pas passer par la table temporaire, vous pouvez
utiliser une SP en ouvrant une requête distribuée avec le driver Microsoft
Text Driver



SELECT *

FROM OPENROWSET('MSDASQL.1', 'Driver={Microsoft Text Driver (*.txt;
*.csv)};', 'SELECT * FROM C:TESTtest1.csv')



En utilisant un curseur sur la table temporaire ou sur la requête distribuée
vous aurez toute la souple nécessaire pour implémenter vos règles de gestion
spécifique.



Cordialement,



Philippe



"Fino" news:O0gN%
Bonjour,

J'ai un fichier texte dans lequel j'ai sur chaque ligne des données
séparées par des ";"
ex :

Ligne 1 -> A;B;C;;;;;D;Z
Ligne 2 -> O;P;Q;R;S;T;U;;;;;;;;;;;;;;

J'ai donc 2 types de lignes avec un nombres de colonne différents.

Je voudrais :

1/ Pouvoir lire ma première ligne mettre ces données dans une table et
rajouter une valeur date
2/ Lire la deuxième ligne et mettre les données de celle ci dans une autre
table en rajouter une valeur @@identity récupérée lors de l'insertion de
la première ligne

Je sèche terriblement sur comme faire je tourne en rond.

Si vous pouvez m'aider :)




Publicité
Poster une réponse
Anonyme