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

SQL Procédural MySQL Discussion :

MAJ certaines colonnes d'une table[ BDD mysql ] via un fichier text(chaque ligne représente un enregistrement)


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Analyste Concepteur[Secteur Banque/assurance]/ Ingénieur d'état en informatique
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyste Concepteur[Secteur Banque/assurance]/ Ingénieur d'état en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 96
    Points
    96
    Par défaut MAJ certaines colonnes d'une table[ BDD mysql ] via un fichier text(chaque ligne représente un enregistrement)
    Bonjour,

    j'ai un petit soucis en exécutant un programme .BAT ,qui charges des données depuis un fichier text dans une table MYSQL,ici je veux juste mettre à jour les 4 derniers colonnes de la table.
    l'erreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ' ' ' n'est pas reconnu en tant que commande interne ou externe,un programme exécutable ou fichier de commandes
    et voila le fichier batch:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    @echo off
     
    setlocal enableextensions enabledelayedexpansion
     
    :debut
     
    If not exist "C:/Users/belkaika/Desktop/batch_INJECT_TIERS_PROSPECTS/retour_injection_des_tiers_Prospects/RTR_INJECT_TIERS_PROSPECTS.txt" (
    echo Le fichier RTR_INJECT_TIERS_PROSPECTS n'existe pas!
    echo fin
    echo.
    goto fin
    )
     
    mysql> LOAD DATA CONCURRENT INFILE 'C:/Users/belkaika/Desktop/batch_INJECT_TIERS_PROSPECTS/retour_injection_des_tiers_Prospects/RTR_INJECT_TIERS_PROSPECTS.txt' REPLACE INTO TABLE questionnaire FIELDS TERMINATED BY '|;' LINES TERMINATED BY '\n' 
    (@col1|;@col2|;@col3|;@col4|;@col5|;@col6|;@col7|;@col8|;@col9|;@col10|;@col11|;@col12|;@col13|;@col14|;@col15|;@col16|;@col17|;@col18|;@col19|;@col20|;@col21|;@col22|;@col23|;@col24|;@col25|;@col26|;@col27|;@col28|;@col29)
    set codeRetour=@col26,motif=@col27,numTiers=@col28,topExist=@col29;
     
    echo les données ont été mises à jour..................
     
    :fin
    endlocal
    echo.
    echo Sortie ...
    echo.
    pause
    exit
    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 344
    Points : 18 919
    Points
    18 919
    Par défaut
    Salut karimoscapitated.

    Voici un exemple de fichier batch windows que j'utilise couramment pour lancer mes script MYSQL :
    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
    @echo off
     
    setlocal enableDelayedExpansion
     
    chcp 1252 > nul
     
    set PATH=.;%WAMPSERVER%\bin\mysql\%MYSQL%\bin\;%PATH%
     
    SET FIC=%~nx0
    SET FIC=%FIC:bat=sql%
     
    mysql < %FIC%  --verbose  --force
    @echo.
    pause
    exit
    L'astuce que j'utilise, c'est que le nom de ce batch peut être n'importe quel nom. Par exemple "base.bat".
    Le fichier contenant le script MYSQL doit alors obligatoirement porter le même nom, d'où "base.sql".
    C'est la variable "FIC" qui va contenir cette substitution.

    Le script MYSQL est ici externalisé.

    Bien sûr, ne pas oublier de mettre le chemin vers le répertoire contenant l'exécutation MySql.
    Chez moi, le chemin est : F:\Wamp\bin\mysql\mysql5.7.11\bin

    L'erreur que tu obtiens concerne justement la variable d'environnement PATH, et de ce fait, il ne trouve pas l'exécutable "mysql".

    Ici, j'utilise le charset windows-1252 qui est le plus proche du latin1. Si tu utilises utf8 alors tu dois mettre "65001".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre régulier
    Homme Profil pro
    Analyste Concepteur[Secteur Banque/assurance]/ Ingénieur d'état en informatique
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyste Concepteur[Secteur Banque/assurance]/ Ingénieur d'état en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 96
    Points
    96
    Par défaut RE
    Merci Artemus24,

    je vais tester votre code et je vous tiendrais au courant
    Merci infiniment.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 344
    Points : 18 919
    Points
    18 919
    Par défaut
    Salut karimoscapitated.

    Pas de quoi !

    Je travaille pratiquement qu'en ligne de commande.
    C'est le batch windows que j'utilise partout pour mes tests.

    Si vous avez besoin d'une amélioration, il suffit de le demander.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre régulier
    Homme Profil pro
    Analyste Concepteur[Secteur Banque/assurance]/ Ingénieur d'état en informatique
    Inscrit en
    Août 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Analyste Concepteur[Secteur Banque/assurance]/ Ingénieur d'état en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 89
    Points : 96
    Points
    96
    Par défaut
    bonjour Artemus24,

    oui effectivement je vois très bien que vous êtes un expert Batch,je tiens encore à vous remercier,en fait pour des changements dans les traitements et spécifications ,j'ai changé le type pas en batch mode mais j'ai conçu une petite application java qui fait de meme et qui est appellée depuis un fichier.bat.

    Merci encore et bonne journée.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/03/2015, 10h42
  2. Réponses: 1
    Dernier message: 03/12/2008, 17h35
  3. [MySQL] Récupérer les colonnes d'une table MySQL
    Par Jeetiz dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 27/06/2007, 21h10
  4. [vb.net] transfert d'une table SQL-Servr vers un fichier texte
    Par nkonito dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/05/2006, 05h36
  5. Vérifier l'existance d'une colonne dans une table MySQL
    Par )3lade dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/04/2006, 12h46

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