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 :

Bulk insert gros fichier - msg 4866, 7399, 7330


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 24
    Points : 16
    Points
    16
    Par défaut Bulk insert gros fichier - msg 4866, 7399, 7330
    Bonjour,

    j'essaye depuis ce matin de charger un fichier dans une table sql server.
    Je souhaite simplement charger toutes les lignes (200.000) dans une seule grande colonne (varchar de taille 400).

    J'utilise donc la commande :

    Bulk INSERT MMS_ODS.dbo.ROBINSON_IN FROM 'c:\rob.fix'

    Et je reçois l'erreur suivante :

    Msg 4866, Level 16, State 1, Line 1
    The bulk load failed. The column is too long in the data file for row 1, column 1. Verify that the field terminator and row terminator are specified correctly.
    Msg 7399, Level 16, State 1, Line 1
    The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
    Msg 7330, Level 16, State 2, Line 1
    Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
    Là où c'est très très bizarre, c'est que dès que je prends un extract du fichier d'origine ça passe. Quand je copie l'intégralité du fichier d'origine dans un nouveau fichier, ça passe. Mais quand je prends le fichier d'origine (récupéré sur un site sur internet), ça ne passe pas.

    Quelqu'un a une idée?
    Merci,

    Lemuel

  2. #2
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    compte tenu du message d'erreur:
    The column is too long in the data file for row 1, column 1. Verify that the field terminator and row terminator are specified correctly
    Il s'agit soit d'une ligne qui contient plus de 400 caractères et donc débordement de votre type varchar(400), soit d'une ligne ne comportant pas de spérateur de champ ou de marqueur de fin de ligne.
    au regard de vos explications je sui plutot tenté par l'option n°1. Avez vous la possibilité de connaitre la taille de la plus grande ligne de votre fichier?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Hmm il semble que le problème vient du fait que le fichier est au format UNIX, le field terminator est donc LF alors que sql server attend un fichier au format CRLF.

    J'ai beau préciser à sql server de prendre le fichier avec un field terminator = '\n' ça ne fonctionne pas.
    La seule chose que j'ai trouvé actuellement, c'est de passer par un petit tool qui convertis le LF en CRLF. Un peu moyen comme solution parce que j'aimerais automatiser mon chargement.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    essayez en jouant sur les code page CODEPAGE = 'ACP' | 'OEM' | 'RAW'

    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. Bulk Insert + fichier Excel csv
    Par Hujii dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/10/2017, 10h08
  2. Bulk insert plusieurs fichiers dans une table (sgbd oracle) avec TOS
    Par fetano dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 30/07/2014, 22h37
  3. Pb fichier de format pour BULK INSERT
    Par droog dans le forum Développement
    Réponses: 0
    Dernier message: 07/06/2011, 14h38
  4. Réponses: 1
    Dernier message: 07/02/2008, 02h54
  5. [SQL SVR 2K]Bulk Insert-Je ne peux pas ouvrir le fichier
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2006, 14h12

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