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 Oracle Discussion :

SQL dans du KSH


Sujet :

SQL Oracle

  1. #1
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 123
    Points : 112
    Points
    112
    Par défaut SQL dans du KSH
    Bonjour,

    Je dois mettre à jour une table à partir d'un fichier plat donc je voudrais inclure du SQLPLUS dans un script ksh malheureusement j'ai un ptit problème d'optimisation...

    Voici ce que j'ai pour l'instant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    cd /product/....
    	for nom in `cat mon_fichier.csv`
    	do
    		echo $nom > fichiertemp
    		var1=`cut -c 1-10 fichiertemp`
    		echo $var1
    		sqlplus -SILENT /nolog
            connect simpuser/simpuser
            UPDATE pgw_customer SET 'colonne1' = 2540 'colonne2' = $var1
            commit;
    		exit
    	done
    rm fichiertemp
    Comme vous pouvez le voir, c'est très loin d'être optimiser...est-ce que quelqu'un aurait une idée pour que je puisse me connecter qu'une seule fois à oracle mais toujours pouvoir utiliser mes variables ksh... ?

    Merci bieucu de votre aide

    ++

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    tu gagnerais surtout énormément de temps avec SQL*Loader ou une table externe

  3. #3
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 123
    Points : 112
    Points
    112
    Par défaut
    Non je ne peux pas, je dois absolument passer par un fichier plat et un script ksh...

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Tu crées les commandes UPDATE dans un fichier puis tu lances ce fichier
    un exemple (écrit comme ça, il doit y avoir des erreurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    cd /product/....
    	FOR nom IN `cat mon_fichier.csv`
    	do
    		echo $nom > fichiertemp
    		var1=`cut -c 1-10 fichiertemp`
    		echo "UPDATE pgw_customer SET colonne1 = 2540, colonne2 = $var1 ;">> update_sql.sql
    	done
    	sqlplus -SILENT /nolog
            connect simpuser/simpuser
            @update_sql.sql;
            commit;
    	exit
    rm fichiertemp
    Ton update, c'est pas le vrai j'espère : des ' sur le nom des colonnes, pas de , pas de WHERE.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Ça serait mieux de mettre tous tes update dans un fichier/script sql puis de l'exécuter au lieu de se connecter à la base à chaque update puis de se déconnecter, à mon avis.
    Tu gagnerais du temps.

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Preums

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par McM Voir le message
    Preums


    Effectivement !

  8. #8
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 123
    Points : 112
    Points
    112
    Par défaut
    ah bah oui c'est pas mal comme solution...
    T'inquiète pas pour l'UPDATE, ce n'est pas le vrai mais c'est un p'tit peu confidentiel...
    Merci beaucoup!

    ++

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

Discussions similaires

  1. [12c] Unix - ksh qui appelle un sql dans une boucle
    Par pomolo11 dans le forum SQL
    Réponses: 2
    Dernier message: 10/07/2014, 09h34
  2. [KSH] envoie d'une requête SQL dans un script
    Par liegeus dans le forum Linux
    Réponses: 1
    Dernier message: 11/07/2011, 19h58
  3. execution d'un .sql dans un .ksh
    Par rojina2903 dans le forum Linux
    Réponses: 3
    Dernier message: 04/07/2008, 09h37
  4. Récupérer erreur sql dans un ksh
    Par jeremy13 dans le forum SQL
    Réponses: 9
    Dernier message: 14/11/2007, 19h11
  5. [PL/SQL] Utilisation table PL/SQL dans clause IN
    Par Yorglaa dans le forum PL/SQL
    Réponses: 13
    Dernier message: 05/10/2004, 10h36

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