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

MS SQL Server Discussion :

insert into depuis feuille excel vers table sous sql server 2005


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut insert into depuis feuille excel vers table sous sql server 2005
    quelle est le script a exécuter pour insérer n colonnes depuis une feuilles excel dans n colonnes d''une table sous sql server 2005??

  2. #2

  3. #3
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856

  4. #4
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut
    je cherche une solution plus simple de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT * 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 5.0;Database=d:\test.xls;HDR=YES;IMEX=1', 
     
    insert into matable
    'SELECT * FROM [mafeuille$]')

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut
    bonjour
    j'utilise ce script et j'ai le message d'erreur suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO dbo.ImportTest
    SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]

    Msg*245, Niveau*16, État*1, Ligne*1
    Échec de la conversion de la valeur nvarchar '68R' en type de données tinyint.


    et dans le cas d'un autre fichiers il parrait que j'ai toujours un probleme avec la meme colonne (rubrique) déclaré varchar(10) dans la base de donnée

    Msg*244, Niveau*16, État*1, Ligne*1
    La conversion de la valeur nvarchar '1034' a dépassé une colonne INT1. Utilisez une colonne entière plus grande.

    L'instruction a été arrêtée.

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Dans le premier cas vous tentez d'insérer des caractères dans une colonne TinyInt votre SGBD préféré veille au grain et vous le fait savoir...

    Dans le deuxième cas, votre SGBD, que vous aimez désormais un peu moins dit qu'on ne peut pas placer 1024 dans une colone Tinyint qui n'accepte les valeurs que jusqu’à 255...

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Décembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 63
    Points : 47
    Points
    47
    Par défaut
    oui mais la colonne en question est déclarée char(10)????j'utilise la version express de sql server 2005, est ce que cela à un rapport avec l'erreur??aussi les 2 erreurs sont liés à la même colonne.

  8. #8
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    oui mais la colonne en question est déclarée char(10)
    Permettez moi d'en douter....

    Le problème est que vous ne spécifiez pas les colonnes dans votre ordre INSERT...
    Testez dans un premier temps en listant les colonnes dans le INSERT.

    Au pire testez l'envois brut des données de votre classeur dans une table créee à la volée puis analysez l'ordre des colonnes générées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * INTO dbo.TEST 
    FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0')...[Sheet1$]

  9. #9
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    BULK
    INSERT CSVTest
    FROM 'c:\csvtest.csv'
    WITH
    (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
    )
    Par contre, je ne sais pas comment lui indiquer un encodage, il ne gère pas les accents.

  10. #10
    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,

    Si si, il gère les accents les même les caractères non latins.
    Travaillant en Thaïlande, je fais cela assez régulièrement.
    Avec l'aide de la documentation, on voit que l'on peut spécifier une page de codes avec l'option CODEPAGE.
    La documentation consacrée à cette option vous pointe vers une autre page, qui donne la liste des pages de codes : à vous de choisir celle qui convient

    @++

Discussions similaires

  1. [XL-2010] Export données Excel vers table Microsoft Sql Server
    Par Lucas G dans le forum Excel
    Réponses: 1
    Dernier message: 17/08/2013, 13h18
  2. Réponses: 2
    Dernier message: 05/06/2013, 18h47
  3. Copie d'une table sous SQL-Server 2005
    Par silkflo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/12/2011, 17h32
  4. Impossible de creer une table sous sql server 2005
    Par Hicham1982 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/04/2010, 16h59
  5. Importer des données d'une feuille Excel vers TABLE
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/11/2006, 09h10

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