begin process at 2012 05 26 11:51:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

Bulk insert avec 2 types de lignes dans un même fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Bulk insert avec 2 types de lignes dans un même fichier

jeudi 11 février 2010 à 15:41:47 | Bulk insert avec 2 types de lignes dans un même fichier

remit

Bonjour,

je souhaite charger un fichier dans une table SQLServer 2005 à l'aide de l'instruction "BULK INSERT".

J'ai une première ligne à charger dans une table (entêtes) et les autres dans une autre table (lignes).

Le problème c'est que 2 types de lignes ont des formats différents (pas le même nombre de colonne).

Du coup, quand je charge les lignes, il ne charge jamais la première ligne car il considère que l'entête + la première ligne ne font qu'une seule ligne.

Quelqu'un connait une méthode pour contourner ce problème ?

code sql :

BULK INSERT Clients_entete FROM 'c:\clients.txt'
WITH (
FIELDTERMINATOR = ''|'',
ROWTERMINATOR = ''|\n'',
CODEPAGE = ''ACP'',
DATAFILETYPE = ''char'',
FIRSTROW = 1,
LASTROW = 1)

BULK INSERT Clients_lignes FROM 'c:\clients.txt'
WITH (
FIELDTERMINATOR = ''|'',
ROWTERMINATOR = ''|\n'',
CODEPAGE = ''ACP'',
DATAFILETYPE = ''char'',
FIRSTROW = 2)
lundi 15 février 2010 à 16:04:19 | Re : Bulk insert avec 2 types de lignes dans un même fichier

hymnuade

Bonjour,

Es-tu sur que la première ligne d'en-tête se finit bien par le pipe | attendu par le row terminator ?

Pour exemple, si j'exécute
BULK INSERT Test FROM 'c:\clients.txt'
WITH (
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n',
CODEPAGE = 'ACP',
DATAFILETYPE = 'CHAR',
FIRSTROW = 2)

sur un fichier de contenu
ID|ID2|ID3
1|1|
2|2|

seule la ligne 2 est prise en compte,

mais si
ID|ID2|ID3|
1|1|
2|2|
alors les lignes 1 et 2 sont bien importées

Peut importe le nombre de colonne pour le BULK INSERT si la ligne différente n'est pas prise en compte dans la mesure ou la fin de la ligne à éviter est clairement identifiable.
mardi 16 février 2010 à 11:41:15 | Re : Bulk insert avec 2 types de lignes dans un même fichier

remit

Effectivement, j'ai essayé ton code et cela fonctionne. Mais moi j'ai toujours le problème.

J'ai l'impression que cela fonctionne uniquement quand il y a plus de colonne dans l'entête que dans les lignes.

Si je modifie mon entête pour ajouter des colonnes et en avoir plus que les lignes, cela fonctionne.

quelqu'un connait-il une méthode pour contourner ce problème ?

Pour le moment, j'ai ajouté des colonnes à mon entête mais ce n'est pas vraiment une solution


Cette discussion est classée dans : ligne, insert, lignes, bulk, clients


Répondre à ce message

Sujets en rapport avec ce message

bulk insert [ par peute51 ] salut a tous,voila comme j'ai compris bulk insert permet d' inserer des donnees a partir d'un fichier1) quelle doit etre l'extension du fichier?2) voi Je veux assembler plusieurs lignes dans une seule ligne [ par salimdz2004 ] Salut J'ai une requête SQL qui me donne comme résultat plusieurs lignes, <spa duplication des lignes d'une table en fonction d'une valeur [ par ple2415 ] Bonjour à tous,je souhaiterais dupliquer les lignes d'une table en fonction de la valeur contenue dans un des champs de cette table.exemple d'une lign INSERT BULK FROM @VARIABLE [ par SebOfBorg ] Bonjour,J'essai de faire un script qui me permettrait de faire un insert bulk avec une variable.Le probleme est que l'analyseru de requete me sort une SQL Bulk Insert champ identitty [ par Myke ] Je possede une table du genrePK (auto incrementation)Descr1(Char)Desc2(Char)et un csv qui contient les info suivanteChamp#1;Champ#2Champ#3;Champ#4Cham BULK INSERT avec FORMAT FILE [ par Grandpretre ] Salut !!Mon bulk insert ressemble à ça : bulk insert PROJET.dbo.dbo_200 from 'C:\Projet\Brembo\200.065' with(FORMATFILE = 'c:\Projet\bcp.fmt') L'erreu bulk insert de plusieurs fichiers sur une meme table [ par edpimi ] Bonjour, J'ai 4 fichier csv et j'essaye d'insérer les données de ces 4 fichiers sur la même table. Mais ca ne marche pas, car les données ne s'incréme Insert dans une table avec 1 champ auto-incrément [ par Toutoune2176 ] Bonjour, J'ai une table Société avec un Id unique en auto-incrément, cela m'évite à avoir à le gérer par soft.Cette table ne comprend rien d'autre, pa suppression de plusieurs lignes en meme temps [ par atino ] Bonjour je voudrai supprimer toutes les lignes d'une table commençant par une meme lettre DELETE FROM [nom de la table] WHERE [nom de la colonne] = comment exécuter un script sql à partir de la ligne de commande ? [ par feros2184 ] salut Je suis sur le point d'utiliser l'utilitaire tablediff.exe de SQL Server


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales