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 :

[SQL Server 2005] BULK INSERT sans effet


Sujet :

Développement SQL Server

  1. #1
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut [SQL Server 2005] BULK INSERT sans effet
    Bonjour à tous,

    Je dois importer des fichiers CSV dans une base SQL Server 2005.

    N'y arrivant pas, j'ai fait une table test et tenté de l'alimenter.

    J'ai la créé la table suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE dbo.TableTest(
    	Champ1 nvarchar(50) NULL,
    	Champ2 nvarchar(50) NULL,
    	Champ3 nvarchar(50) NULL
    ) ON [PRIMARY]
    J'ai testé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BULK INSERT dbo.TableTest
     
    FROM 'C:\test.csv'
    WITH
    (
    FIRSTROW=2,
    MAXERRORS = 0,
    FIELDTERMINATOR =';',
    ROWTERMINATOR ='\n'
    )
    Le code s'exécute sans soucis (aucun message d'erreur) mais... rien n'est transféré .

    J'ai fait un essai avec un autre fichier test qui a été importé sans problème (fichier créé à la main dans notepad; le caractère de fin de ligne était \r\n).

    Je ne serai pas surpris qu'il s'agisse d'un problème de ROWTERMINATOR ou d'un autre paramètre mais je n'ai pas trouvé de solutions malgré différentes tentatives...


    Ci-joint le fichier que je tente d'importer.



    Merci de votre aide .
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    J'ai tester l'importe avec votre fichier.. Effectivement ca ne fonctionne pas.. J'ai créé un autre fichier en recopiant le contenu de votre fichier dans le mien (un simple copier coller) et là pas de souci.

    Avec quoi avez vous générer votre csv?

    ++

  3. #3
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Merci de ton aide mikedavem.

    Le fichier est issu d'un gros système (je ne connais pas la nature exacte... mias il me semble qu'il tourne sous UNIX).

    Quand je regarde le fichier sous Notepad++, il marque LF, mais je demande si ce n'est pas ce caractère qui pose pb... est-ce bien \n où est-ce qu'il peut y avoir autre chose que notepad++ interprête comme étant un LF... ?
    Je vais faire des essais dans ce sens.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    J'ai déjà eu ce problème, effectivement cela provient du LF que vous montre NotePad++.
    Le \n correspond à CR + LF, donc essayez avec \r seulement ...

    @++

  5. #5
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,


    Merci elsuket, mais il me semblait que \n correspondait au LF...

    Enfin, je réessaierai l' \r ... dés fois que...


    @+

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour à tous,

    Un collègue m'a trouvé la solution : mon caractère de fin de ligne est bien un LF mais la commande \n n'est pas correctement prise en compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DECLARE @bulk_cmd varchar(1000)
    SET @bulk_cmd = 
    'BULK INSERT dbo.TableTest
    FROM ''C:\temp\test.csv'' 
    WITH (
    FIRSTROW=2,
    MAXERRORS = 0,
    FIELDTERMINATOR ='';'',
    ROWTERMINATOR = ''' + CHAR(10) + ''')'
    EXEC(@bulk_cmd)

    Je viens de trouver une page sur msdn qui va dans le même sens
    http://msdn.microsoft.com/fr-fr/library/ms188365.aspx

    Ils n'explique pas pour autant pourquoi il faut passer par CHAR(10) mais je présume que le bulk insert ne voit pas \n comme il conviendrait...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/03/2010, 17h45
  2. SQL Server 2005 - ETL - Insertion données avec vérification.
    Par Mailgifson dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/12/2007, 12h22
  3. [SQL SERVER 2005] Comment vivre sans EXECUTE ?
    Par rarazor dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/06/2007, 11h16
  4. Réponses: 4
    Dernier message: 11/12/2006, 09h31
  5. [VB.NET 2005][SQL SERVER 2005] Pb d'insertion en BdD
    Par jhary07 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/01/2006, 08h53

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