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

Linux Discussion :

Besoin d'aide pour rédaction d'un script KSH générant des requêtes SQL


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Besoin d'aide pour rédaction d'un script KSH générant des requêtes SQL
    Bonjour All,

    Je dois faire un script KSH que je dois rentre demain mais j'ai été super malade (calculs rénaux) pendant 1 semaine et je n'ai pas pu travailler dessus. Le gros problème est que je ne connais rien à shell. Donc je demande à l'aide au prêt de vous :

    Voila mon devoir :

    Un nouveau script sera mis en place afin d’insérer de façon automatique des instructions « sql » dans la table de numérotation : REF_TEL.

    Ce script prendra en entrée en argument :
    o Une date :
    • Cette date correspondra au champ « mindate ».
    • Cette date devra être au format [DD/MM/YYYY HH24:MI:SS].

    o Un fichier texte :
    • Ce fichier contiendra les occurrences du champ « prefix » à insérer dans la table.
    • Ce fichier sera au format «.txt » et devra contenir une ligne par instruction.

    o Un fichier CSV :
    • Ce fichier ne comportera qu’une seule ligne ; il aura pour rôle de fournir les occurrences par défaut à insérer dans la table en complément des champs « prefix » fournis dans le fichier texte c'est-à-dire tous les champs autres que « maxdate », « datemodif » (cf. remarques et limitations) et « mindate », « prefix » (cf. points précédents).
    • Ce fichier devra être au format « csv » (occurrences séparées par un point-virgule « ; ») ; l’ordre d’apparition des champs dans ce fichier devra respecter celui de la table.


    Le script construira les instructions SQL qu’il stockera dans un fichier tiers (fichier texte). Ce fichier permettra de vérifier les instructions en cas d’erreur. Le script lancera ensuite les instructions :
    o Si tout ce passe bien, il y aura un message indiquant la fin correcte du traitement.
    o Si il y a une erreur, un roll back sera appliqué sur les instructions déjà passées et le traitement remontera un message d’erreur. En aucun cas l’application ne pourra aiguiller sur l’insertion qui est en erreur. La seule solution sera de vérifier manuellement le fichier texte comportant les instructions.

    Remarques et limitations :
    o Les champs « maxdate » et «datemodif » seront alimentés de la manière suivante :
    • « maxdate » : si ce champ n’est pas renseignée dans le fichier « csv », le champ correspondant dans la table prendra la valeur « 31/12/2999 23:59:59 ». Si une valeur spécifique doit être indiquée, celle-ci pourra l’être dans le fichier « csv »et devra être au format [DD/MM/YYYY HH24:MI:SS]. Cette date sera commune à tous les préfixes chargés dans le fichier texte correspondant.
    • «datemodif » : ce champ prendra par défaut la date du serveur au moment de l’insertion. Si une valeur spécifique doit être indiquée, celle-ci pourra l’être dans le fichier « csv »et devra être au format [DD/MM/YYYY HH24:MI:SS]. Cette date sera commune à tous les préfixes chargés dans le fichier texte correspondant.
    Voila, j'ai cherché dans pas mal de documentation mais j'ai pas trouver grand chose.
    Je post cette demande au dernier moment car je voulais essayer de le faire par moi même mais le temps m'a manqué.

    J'espere que quelqu'un pourra m'aider.

    Merci d'avance

    Amicalement,
    Diablotin

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par diablotin Voir le message
    Bonjour All,

    Je dois faire un script KSH que je dois rentre demain mais j'ai été super malade (calculs rénaux) pendant 1 semaine et je n'ai pas pu travailler dessus. Le gros problème est que je ne connais rien à shell. Donc je demande à l'aide au prêt de vous :

    Voila mon devoir :



    Voila, j'ai cherché dans pas mal de documentation mais j'ai pas trouver grand chose.
    Je post cette demande au dernier moment car je voulais essayer de le faire par moi même mais le temps m'a manqué.

    J'espere que quelqu'un pourra m'aider.

    Merci d'avance

    Amicalement,
    Diablotin
    Désolé, on ne fait pas les devoirs des autres... même pour des calculs rénaux. D'ailleurs si tu montres à ton prof les preuves de ta maladie (ordonnances, etc) il devrait se montrer compréhensif.

    Tu peux regarder des cours shell Linux ici http://linux.developpez.com/cours/

    Voici quelques pistes pour t'aider
    - les arguments passés au programme sont stockés dans des variables $1, $2, $3

    - si $# est inférieur à 3, alors il n'y a pas assez d'argument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if test $# -lt 3
    then
        echo "$0: Pas assez d'argument"
        exit 1
    fi
    - la lecture ligne par ligne d'un fichier texte qui contient plusieurs lignes peut se faire de plusieurs façons différentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read ligne
    do
        echo "$ligne"
    done <fichier_texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cat fichier_texte |while read ligne
    do
        echo "$ligne"
    done
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    exec 3<fichier_texte
    while read ligne 0<&3
    do
        echo "$ligne"
    done
    Personnellement je préfère la 3° façon de faire car elle permet de traiter plusieurs fichiers à la fois

    - comme le 3° fichier ne contient qu'une ligne donc tu peux la récupérer directement de cette façon
    - une ligne qui contient plusieurs champs séparés par un point-virgule peut, si tu connais le nombre de champs, être facilement découpée grace à cut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    info1=`echo $ligne |cut -f1 -d\;`
    info2=`echo $ligne |cut -f2 -d\;`
    info3=`echo $ligne |cut -f3 -d\;`
    etc...
    si au contraire tu ne connais pas le nombre de champs, vaut mieux utiliser set (ne pas oublier l'IFS)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    old="$IFS"; IFS=";"; set $ligne; IFS="$old"; unset old
    echo "Nb de champs: $#"
    for champ in $*
    do
        echo "Champ: $champ"
    done
    Voilà. je pense qu'avec tout ça t'as toutes les billes pour faire ton exo...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [MySQL] Besoin d'aide pour optimisation d'un script très lourd
    Par macadamgrafik dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/02/2009, 16h08
  2. Réponses: 3
    Dernier message: 01/02/2007, 20h05
  3. Besoin d'aide pour faire fonctionner un Script d'upload d'images
    Par PaoOo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/06/2006, 21h24
  4. [SNMP] Besoin d'aide pour SNMP, MIB dans script
    Par suya95 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 17/05/2006, 16h20
  5. [langage]Besoin d'aide pour debogage d'un script
    Par deadgod dans le forum Langage
    Réponses: 32
    Dernier message: 27/06/2005, 00h18

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