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

Shell et commandes GNU Discussion :

Script insérant le contenu d'un fichier dans une colonne MySQL


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut Script insérant le contenu d'un fichier dans une colonne MySQL
    Bonjour,

    le script shell suivant me permet de lancer un script MySQL et d'obtenir le log dans un fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	mysql -h localhost -vvb -e "source $SCRIPT_SQL" -u monuser -pmonpwd >> $FIC_TRACE
    J'obtiens une trace (fichier $FIC_TRACE) qui ressemble à ça :
    delete from sys_etablissement
    --------------

    Query OK, 40 rows affected

    --------------
    LOAD DATA INFILE 'etablissement.csv' INTO TABLE etablissement FIELDS TERMINATED BY ';' lines terminated by '\r\n' IGNORE 1 LINES
    (ETB_CODE, ETB_TRIGRAMME, @ETB_LIBELLE, @ETB_DATE_CREATION, @ETB_DATE_MODIFICATION)
    SET
    ETB_LIBELLE = trim(@ETB_LIBELLE),
    ETB_DATE_CREATION = now(),
    ETB_DATE_MODIFICATION = now()
    --------------

    Query OK, 40 rows affected, 9 warnings
    Records: 40 Deleted: 0 Skipped: 0 Warnings: 9

    Bye
    Je voudrais pouvoir faire un insert du contenu de $FIC_TRACE dans une autre table MySQL de manière automatique mais je ne vois pas vraiment comment faire. Quelqu'un a-t-il déjà fait cela ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,
    peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LOAD DATA LOCAL INFILE '/chemin/fichier' INTO TABLE table;
    cf. Loading data into a table
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Si ton idée est d'insérer les 40 enregistrements dans une table, tu vas être déçu.
    Ton script SQL ne renvoie pas au script shell les enregistrements mais le compte rendu des opérations effectuées.
    Il pourrait. Mais là, ce n'est pas ce que tu lui demandes.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    ...
    Ton script SQL ne renvoie pas au script shell les enregistrements mais le compte rendu des opérations effectuées.
    ...
    Ce sont bien les comptes rendus que je veux récupérer.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    ah, tu veux insérer tout le fichier dans une unique cellule !?
    en faisant un INSERT avec un cat tonFichier dans une substitution de commande ($( )) ?
    ou sans fichier temporaire, en mettant ta requête SQL dans la substitution de commande ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Je vais tester ça.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    LOAD DATA INFILE permet d'insérer un fichier ligne par ligne dans une table, pas un fichier enteir dans une colonne comme j'en ai besoin.

Discussions similaires

  1. ouvrir contenu d'un fichier dans une autre fenetre
    Par babalastar dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/05/2008, 14h17
  2. Réponses: 3
    Dernier message: 26/04/2008, 17h58
  3. Réponses: 4
    Dernier message: 29/02/2008, 10h40
  4. Afficher contenu d'un fichier dans une zone de texte
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 23/09/2006, 14h09
  5. [VB6]Lire le contenu d'un fichier dans une listbox
    Par gizmorambo dans le forum VB 6 et antérieur
    Réponses: 24
    Dernier message: 11/04/2006, 12h51

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