Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2007, 17h57   #1
Invité de passage
 
Inscription : mars 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 34
Points : 0
Points : 0
Par défaut procedure shell avec awk pour mise à jour d'une table d'une base de données oracle

Bonjour,
je suis debutant et je souhaite ecrire une procedure pour mettre

Je cherche à écrire une procédure à exécuter sous unix comme suit
Pour chaque ligne de la table IdentifiantPersonne
pour chaque ligne de la table IdentifiantPersonne
si (nom, prénom) = (nom,prénom) de la ligne correspondante de la table PersonneConnu
alors ecrire le champ de la colonne langue de IdentifiantPersonne dans la colonne clangue de PersonneConnu

Exemple: Les 2 table n'ont pas de cle commun

Citation:
Table PersonneConnu

N° Nom Prenom Age Metier Clangue
1 Dupont Alain 22 Serveur
2 Marie Tata 36 medecin
3 Louis thomas 28 Ecrivain
4 Flaure Laure 16 eleve
5 Dupont Julien 36 medecin
6 Duval Come 25 etudiant


Citation:
Table IdentifiantPersonne

ident Nom Prenom age Fonction langue
A Dupont Alain 50 Serveur Paris
B Marie Tata 36 medecin Paris
C Louis thomas 28 Ecrivain rome
D Flaure pauline 15 eleve amsterdam
E Coco Julien 36 medecin rome
F Duval Come 22 etudiant paris
pour ident =A et N° = 1 (nom, prenom) =(Dupont Alain) premiere ligne des 2 tables alors j'ecris 'Paris' dans la colonne Clangue

resultat attendu:avec la procedure

Citation:
N° Nom Prenom Age Metier Clangue
1 Dupont Alain 22 Serveur Paris
2 Marie Tata 36 medecin
3 Louis thomas 28 Ecrivain
4 Flaure Laure 16 eleve
5 Dupont Julien 36 medecin
6 Duval Come 25 etudiant
Quelqu'un pourrait m'aider et merci d'avance
lightzeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 19h08   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
ne serai t il pas plus simple et sourtout moins risque en terme d'erreur potentielle de faire un script SQL plustot qu'un shell qui appelle ensuite un sqlplus ?
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 10h26   #3
Membre éprouvé
 
Avatar de _shuriken_
 
Homme
Consultant telecoms
Inscription : mars 2006
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations professionnelles :
Activité : Consultant telecoms
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2006
Messages : 426
Points : 410
Points : 410
Oui, je suis d'accord avec frp31, mieux vaut écrire une procedure plsql qui te permettra d'avoir le resultat attendu plutot qu'un script shell.
__________________
"When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely in your thoughts advanced to the state of Science, whatever the matter may be."

Lord Kelvin - 1883.
_shuriken_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 17h20   #4
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
oui, soit tu as des fichiers,
==> personneconnu <==
Code :
1
2
3
4
5
6
1 Dupont Alain 22 Serveur
2 Marie Tata 36 medecin
3 Louis thomas 28 Ecrivain
4 Flaure Lauaurablre 16 eleve
5 Dupont Julien 36 medecin
6 Duval Come 25 etudiant
==> identifiantpersonne <==
Code :
1
2
3
4
5
6
A Dupont Alain 50 Serveur Paris
B Marie Tata 36 medecin Paris
C Louis thomas 28 Ecrivain rome
D Flaure pauline 15 eleve amsterdam
E Coco Julien 36 medecin rome
F Duval Come 22 etudiant paris
dans ce cas là tu peux utiliser join
Code :
1
2
3
4
5
6
7
8
 
$ join -1 2,3 -2 2,3 -a 2 -o 2.1,2.2,2.3,2.4,2.5,1.6 identifiantpersonne personneconnu
1 Dupont Alain 22 Serveur Paris
2 Marie Tata 36 medecin Paris
3 Louis thomas 28 Ecrivain
4 Flaure Laure 16 eleve
5 Dupont Julien 36 medecin
6 Duval Come 25 etudiant
si tu as des tables oracle, un simple JOIN sur nom,prenom devrait résoudre ton problème
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h43.


 
 
 
 
Partenaires

Hébergement Web