4/5 (6 avis)
Snippet vu 39 672 fois - Téléchargée 18 fois
CREATE Procedure dbo.Read_File(@File VarChar(495),@Separator Char(1),@FirstLineColumn Bit) AS BEGIN Declare @Txt Nvarchar(max),@Req VarChar(max),@Res Nvarchar(Max) ------------------------------------- --Lecture du fichier Texte avec Dos-- ------------------------------------- CREATE TABLE ##TB(Valeur nvarchar(Max)) Set @Req='BULK INSERT ##TB FROM ''' + @File + ''' WITH(FIRSTROW= 1,LASTROW=1,ROWTERMINATOR = ''' + CHAR(10) + ''')' EXEC(@Req) ------------------------------------------ --Création de la table temporaire ##Temp-- ------------------------------------------ SET @Txt=(SELECT TOP 1 Valeur FROM ##TB) + @Separator DROP TABLE ##TB IF @FirstLineColumn=0 BEGIN DECLARE @Nb INT Set @Nb=0 WHILE CHARINDEX(@Separator,@Txt)>0 BEGIN SET @Res=ISNULL(@Res,'') + '[Column' + convert(Nvarchar,@NB) + '],' SET @Txt=SUBSTRING(@Txt,CHARINDEX(@Separator,@Txt)+1,LEN(@Txt)- CHARINDEX(@Separator,@Txt)) SET @Nb=@Nb+1 END SET @Res=LEFT(@Res,LEN(@Res)-1)+')' END ELSE BEGIN SET @Res='[' + REPLACE(@Txt,@Separator,'],[') SET @Res=LEFT(@Res,LEN(@Res)-2)+')' END SET @Req='CREATE TABLE ##Temp (' + REPLACE(@Res,']','] NVarChar(Max)') EXEC(@Req) --------------------------------- --Import de données dans ##Temp-- --------------------------------- SET @REQ='BULK INSERT ##TEMP FROM ''' + @File + ''' WITH(FIELDTERMINATOR = ''' + @Separator + ''' , FIRSTROW= ' + CONVERT(NVARCHAR, CONVERT(INT,@FirstLineColumn)+ 1) +', ROWTERMINATOR = ''' + CHAR(10) + ''')' EXEC(@REQ) ------------------------------------ --Lecture et suppression de ##Temp-- ------------------------------------ SELECT * FROM ##Temp DROP TABLE ##Temp END
12 juil. 2011 à 00:14
7 déc. 2009 à 23:07
11 mai 2009 à 12:37
je veux le code en java , en fait je réalise un générateur de données :
Protoype 1 : Création d’une base de données ayant des tables et attributs indépendants en fichier SQL ;
Protoype 2 : Géneration de la base de données avec des tables indépendantes et des contraintes sur les valeurs des attributs ;
Prototype 3 : Géneration de la base de données dans un certain ordre tenant compte de la dépendance, par exemple il faut génerer une table « Commande » qui fait référence a une table « Client » à travers un attribut « Client
j'ai besoin de vous aides
merci de votre attention
24 sept. 2008 à 11:29
- ajouter une transaction,
- ajouter une instruction TRY...CATCH,
- gérer les caractères accentués,
- préciser que BULK INSERT, pour optimiser les performances, n'utilise pas les logs transactionnels.
23 sept. 2008 à 18:22
http://msdn.microsoft.com/fr-fr/library/ms188365.aspx
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.