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 :

Importation d'un fichier Excel


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur géologue
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur géologue

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Billets dans le blog
    4
    Par défaut Importation d'un fichier Excel
    Bonjour,
    Je cherche à importer un fichier excel par une procédure stockée (projet ADP et sql server 2005). Pouvez vous me donner un exemple ou me lancer sur un tuto.
    Merci

  2. #2
    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 : 44
    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
    Par défaut
    Bonjour,

    S'il s'agit d'un import ponctuel, vous pouvez faire cela à l'aide de l'assistant importation de données que vous trouverez dans SQL Server Management Studio :

    - Faites un clic droit sur la base de données dans laquelle vous devez réaliser l'import
    - choisissez "Toutes les tâches" ou "Tâches"
    - choisissez "Importer des données"
    - laissez vous guider par l'assistant

    S'il s'agit en revanche d'un traitement à effectuer régulièrement, il sera préférable de passer par un package d'intégration, comme vous en fait la démonstration Fleur-Anne Blain ici

    @++

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur géologue
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur géologue

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Billets dans le blog
    4
    Par défaut Importation d'un fichier Excel
    Merci pour votre réponse.
    Oui pour moi, il s'agit d'un traitement à effectuer régulièrement (je le propose aux clients).
    J'ai une autre question dans le même contexte.
    Est ce qu'on peut passer par une procédure stockée? vu que je cherche à ce que le client puisse définir le chemin du fichier à importer. Je suis plus familiarisé avec ça qu'avec l'usage du SSIS (la procédure stockée sera executer via un module VBA).
    Est ce que le notion opendatasource ne peut pas s'appliquer dans ce genre de problème? si c'est oui pouvez vous m'orienter vers un tuto du même genre.
    Merci

  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 : 44
    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
    Par défaut
    Vous pouvez effectivement créer une procédure qui utilisera la commande BULK INSERT, mais vous devrez la combiner avec du code SQL dynamique.

    Vous pouvez aussi utiliser la commande OPENROWSET, mais là encore vous devrez a combiner avec du code SQL dynamique.

    Je suis plus familiarisé avec ça qu'avec l'usage du SSIS
    OK si vous êtes pressé, sinon c'est dommage de ne pas s'y mettre


    @++

  5. #5
    Membre confirmé

    Homme Profil pro
    Ingénieur géologue
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur géologue

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Billets dans le blog
    4
    Par défaut Importer fichier Excel avec opendatasource
    Bonjour,
    Je cherche à importer dans une procédure stockée texte (sql server 2005), un fichier excel mais avec un "data source" variable. J'ai fait la tentative suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Alter procedure...
    (
    @path varchar(100)
    )
    as
    set nocount on
    select * into table from opendatasource('Microsoft.jet.oledb.4.0',
    'Data Source='+@path+';Extended properties=Excel 8.0')...[feuille1$]
    return
    Mais ça ne marche pas, l'erreur qui s'affiche est "Erreur ADO: Synthaxe incorrect vers '+'. Pouvez vous m'aider à résoudre ce problème ou me guider vers un tuto qui traite de cette question.
    Merci

  6. #6
    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 : 44
    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
    Par défaut
    Vous devez pour cela utiliser du SQL dynamique, c'est à dire construire votre instruction SQL au fil de l'eau et la transmettre ensuite au moteur de base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ALTER PROCEDURE...
    	@path NVARCHAR(255)
    AS
    BEGIN
    	SET NOCOUNT ON
     
    	DECLARE @chaineDeConnexion NVARCHAR(512),
    			@SQL NVARCHAR(1024)
     
    	SET @chaineDeConnexion = 'Data Source='+ @path + ';Extended properties=Excel 8.0'
    	SET @SQL = 'SELECT * INTO dbo.maTable FROM OPENDATASOURCE(''Microsoft.jet.oledb.4.0'', ' + @chaineDeConnexion + ')...[feuille1$]'
     
    	-- PRINT @SQL
     
    	EXEC maBD.dbo.sp_executeSQL @SQL
    END
    Ici j'utilise le type NVARCHAR car la procédure stockée système sp_executeSQL l'exige.
    J'ai étendu la largeur de la variable @path à 255 caractères, car un chemin sous Windows est me semble-t-il limité à cette longueur là

    @++

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

Discussions similaires

  1. Importation d'un fichier excel vers access
    Par zinini dans le forum Access
    Réponses: 2
    Dernier message: 07/07/2006, 12h42
  2. Importation d'un fichier EXCEL EN ACCESS
    Par noob_vba dans le forum Access
    Réponses: 3
    Dernier message: 23/06/2006, 16h13
  3. Réponses: 7
    Dernier message: 23/11/2005, 18h20
  4. Réponses: 7
    Dernier message: 04/10/2005, 18h21
  5. importation d'un fichier excel à destination finale : delphi
    Par pier dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 24/09/2005, 23h23

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