IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

charger les données d'un fichier .txt dans une table


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Points : 34
    Points
    34
    Par défaut charger les données d'un fichier .txt dans une table
    Bonjour à tous.
    je suis new dans le monde de sql, et je m'entraine à charger le contenu d'un fichier .txt dans une table que j'ai créée sur sql server. la table étant deja constitué, je souhaiterai remplir ses colonnes par programmation. comment faire?
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Soit en utilisant bcp, soit en utilisant n'importe quel langage de programmation permettant la connexion à SQL Server

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Ou encore BULK INSERT ou plus pauvre : OPENDATASOURCE.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Points : 34
    Points
    34
    Par défaut
    j'ai utilisé le code ci dessou que j'ai trouvé en suivant le lien que vous aviez donné.
    et je l'ai exécuté avec:[exec dbo.Read_File'C:\STATISTIC\BSC01\TCH.txt','|',8].
    à la première exécution il a créer une nouvelle table mais la table était vide(je l'ai donc supprimé pour executer à nouveau).
    à la deuxième il me donne dans Results le contenu complet de mon fichier .txt, mais il n'est pas dans une table, or je souhaiterai mettre ces données dans ma table que j'ai deja créée à cet effet, que faire?

    [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
    ]

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Une table temporaire et du sql dynamique sont incompatible sauf à utiliser la procédure prévue à cet effet, de nom sp_executesql.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Etonnant que personne ne t'ai encore répondu : SSIS.

    Va voir le tutoriel de Fleur-Anne : http://fablain.developpez.com/tutoriel/ssis/
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    SSIS n'est qu'une encapsulation de bcp avec des fioritures. Cela n'aira pas plus vite, même souvent moins vite !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Comment extraire les données d'un fichier txt dans un tableau excel
    Par mirage23 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/11/2012, 09h16
  2. Charger les données d'un fichier XML dans un JTable
    Par leconteconte dans le forum Débuter
    Réponses: 2
    Dernier message: 12/01/2012, 21h50
  3. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  4. Importer les données d'un fichier excel dans une table
    Par dams95190 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/12/2007, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo