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 fichier dans table


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut SQL Server fichier dans table
    Hello tout le monde,


    J'ai besoin de votre aide je vous explique... je travaille sur SQL SERVER et j'aimerais savoir comment faire pour sauvegarder un fichier dans une colonne d'une table (c'est à dire faire en sorte que le fichier soit stocké en tant que modalité dans une autre variable d'une autre table) et deuxièmement j'aimerais savoir comment faire pour ensuite utiliser les variables du fichier qui sont dans la nouvelle table SQL SERVER.

    Merci à vous


    Vaness

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Pour mettre un fichier dans une table, vous avez 3 solutions :
    • Utiliser une colonne BLOB de type VARBINARY d'une table et stocker le binaire du fichier dedans
    • Utiliser le stockage FILESTREAM qui permet de stocker des fichiers directement en fichier sous le contrôle du Server SQL
    • Utiliser une table de fichier (Filetable) qui est un point d'entrée de l'arborescence des fichiers du système et permet de manipuler des fichier par SQL seul ou par SQL et Windows.


    En ce qui concerne la solution 1, pour monter un fichier dans une colonne VARBINARY d'une table voici la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE T_FICHIER_FCH
    (FCH_ID               INT IDENTITY PRIMARY KEY,
     FCH_NAME             VARCHAR(32) NOT NULL,
     FCH_FILE             VARBINARY(max) NOT NULL);
    GO
     
    INSERT INTO T_FICHIER_FCH
    SELECT 'setupact.log', BulkColumn
    FROM   OPENROWSET(BULK 'C:\Windows\setupact.log', SINGLE_BLOB) AS fichier
    GO
    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/ * * * * *

  3. #3
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    Bonjour,


    Merci beaucoup SQLpro pour ta réponse. J'ai opté pour FILETABLE . Néansmoins je ne sais pas comment manipuler les données? j'ai vu qu'il fallait passer par des API et j'aimerais savoir si il y a un autre moyen? et quel est la manière de procéder?!


    Je vous remercie


    Vaness

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Vous trouverez l'essentiel des informations sur ce sujet dans notre livre sur SQL :
    Nom : Couverture livre SQL server Eyrolles.jpg
Affichages : 267
Taille : 105,0 Ko

    Je ne vais en effet pas vous recopier une trentaine de pages dans un forum !!!!

    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/ * * * * *

  5. #5
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    Ok merci pour l'info. Juste une petite précision je suis débutante et ça m'aiderait beaucoup si vous pouvez m'aiguiller sur comment transformer des données de type binaire (varbinary sur sql server 2016) en variable "lisible" c'est -à-dire avec leurs valeurs d'origine.

    Merci beaucoup pour ton aide


    Vaness

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Qu'entendez vous par valeur d'origine ?
    Pouvez vous donner un exemple concret ?

    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/ * * * * *

  7. #7
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    Bonjour ,

    Lorsque l'on passe par FILETABLE afin de stocker les documents dans un fichier il faut convertir la colonne qui va contenir les fichiers en une variable binaire qui n'est pas tout explicite( les modalités stockées s'affichent bizarrement sous le format binaire or j'aimerais pouvoir faire en sorte quelle récupére les modalités d'origine c'est-à-dire les modalités que l'on trouve à la source.

    C'est plus clair j'espere.


    Merci


    Vaness

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Non, pas clair du tout !!!!! C'est quoi une modalité d'origine ????

    A nouveau donnez un exemple concret !

    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/ * * * * *

  9. #9
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    Bonjour,


    En fait imaginons on a un fichier csv avec 3 variables: clients, age, sexe: on a dix observations. Lorsque je convertie la colonne qui va contenir les fichiers en une variable binaire, j'ai une colonne avec le contenu du fichier csv qui est dans une colonne et traduit en héxadécimal : dans ma colonne avec mes fichiers pour la première observation j'ai : Okjz89kkk864v5RTyhU


    lorsque je cast tout ça en char, j'ai dans ma colonne (Cédric; 67;homme Kate;22;femme Jean;19;homme) ...Je retrouve en fait chaque ligne est séparée par un espace et les modalités d'une même ligne sont séparée par des ";". moi je voudrais être capable à travers des requêtes sql prendre par exemple uniquement les colonnes clients et age pour les mettre dans une autre table. Comment faire? j'espère que là c'est plus clair


    Merciiii


    Vaness

  10. #10
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Bonsoir,

    Dans ce cas, ce n'est pas un stockage de fichier dans une colonne qu'il vous faut, mais importer un fichier CSV dans une table. La commande BULK INSERT peut vous aider.

    Petit exemple d'usage :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BULK INSERT SchoolsTemp
    FROM 'C:\Chemin\vers\fichier.csv'
    WITH
    (
        FIRSTROW = 2, -- Pour éviter la ligne d'entête s'il y en a une
        FIELDTERMINATOR = ',', -- Séparateur de champ
        ROWTERMINATOR = '\n', -- Séparateur de ligne
        TABLOCK -- Pose un verrou sur la table lors de l'importation
    )

  11. #11
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    ah ok merci pour ta réponse dorinf et en faisant ainsi on pourra sélectionner les variables par leurs noms? du coup il n'y a pas d'interet de passer par un filestream?!

    merci

    Vaness

  12. #12
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par vanessa75 Voir le message
    et en faisant ainsi on pourra sélectionner les variables par leurs noms?
    Par leur nom, non, mais par le nom de la colonne dans laquelle se trouvera la donnée oui. Après, rien ne t'empêche de nommer tes colonnes en fonction du nom de tes variables.

    Citation Envoyé par vanessa75 Voir le message
    du coup il n'y a pas d'interet de passer par un filestream?!
    Pour requêter comme tu souhaites le faire, il n'y en a pas.
    Le seul cas où cela pourrait être utile, c'est si tu souhaites conserver la source de tes données, pour pouvoir récuperer le CSV d'origine.

  13. #13
    Membre confirmé
    Femme Profil pro
    Architecte technique
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut
    OK SUPER C'est ce que je voulais merci beaucoup


    Bonne journée

    Vaness

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

Discussions similaires

  1. Table SQL server liée dans Access 2010 - Mise àjour structure
    Par NicolaTesla dans le forum Modélisation
    Réponses: 1
    Dernier message: 30/01/2014, 16h04
  2. [Toutes versions] Lier une table de SQL server à Access dans Access
    Par Traknoz dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/01/2011, 00h36
  3. Utilisation des tables SQL Server 2005 dans Delphi
    Par xeak2008 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/08/2008, 13h35
  4. Réponses: 2
    Dernier message: 28/09/2006, 10h58
  5. [SQL Server] rechercher dans plusieurs champs d'une table
    Par houla! dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/08/2006, 09h37

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