|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
Bonjour,
Je travaille sous oracle8i (l'université à pas encore migré à la 10g, enfin ..) Voici mes tables DEPARTEMENT(NUMERO_DPT, NOM_DPT) VILLE(NUMERO_VILLE, NOM_VILLE, NOMBRE_HABITANTS_VILLE, #NUMERO_DPT_VILLE) NOM_VILLE et NOM_DPT sont unique. Je fais une application en Pro*C Je dois insérer une ville donné par l'utilisateur, jusque là simple. Mais je souhaiterais faire une requête qui me renseigne si les données que l'utilisateur a saisie sont valides, à savoir - Le nom du département existe - Le numéro de la ville n'existe pas déjà - Le nom de la ville n'existe pas déjà Ce que je pensais faire c'est de vérifié tous en une requête mais je pense que c'est iréalisable ou ca devient aussi compliqué que de diviser en 3 requêtes. Je demande donc votre avis si je divise en 3 ou si il y a une solution. Citation:
|
|
|
|
00
|
|
|
#2 | ||||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
La clé primaire de la table ville est NUMERO_VILLE et NUMERO_DPT_VILLE clé étrangère ? Si c'est le cas il faut utiliser une jointure externe pour te ramemer les enregistrements qui participent a la relation et qui participent pas a la relation Code :
Code :
|
||||
|
|
00
|
|
|
#3 | |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
J'ai déjà essayé mais le problème est que l'utilisateur renseigne numero_ville et numero_dpt
Par exemple pr ca Citation:
|
|
|
|
00
|
|
|
#4 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
Tu as seulement oublié un petit détail, il faut suivre ta condition a la jointure externe Code :
|
||
|
|
00
|
|
|
#5 | |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
On est proche de la solution ..
Citation:
Car sinon en jeux d'essai en echec je peux avoir -Le département existe -La ville existe "Mais n'appartient pas au département précédemment cité .." -Idem avec le numéro ville |
|
|
|
00
|
|
|
#6 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour ,
Je comprends pas un chose avec cette condition tu vas afficher seulement les département qui n'ont pas de villes ou le département 'Gironde' et la ville 'Arcachon' et le numero de la ville 28 Code :
|
||
|
|
00
|
|
|
#7 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
Tu peux me donner la régle de gestion entre ville et département ? |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
Bonjour,
Oui mais moi ce que je souhaite afficher n'a pas besoin de la liaison entre département et ville. Ce que je souhaite afficher c'est sur 3 colonnes (ex de saisie utilisateur : Gironde, 28, Arcachon) Si le département Gironde n'existe pas dans la table Aucune ligne affiché Si le département saisie existe et que le numero_ville et le nom_ville n'existe pas 'Gironde', null, null Si le département existe et que le numero_ville existe et le nom_ville n'existe pas 'Gironde', 28, null Si le département existe et que le numero_ville n'existe pas et le nom_ville existe 'Gironde', null, 'Arcachon' Et sur la requête du dessus le problème c'est que il y a la jointure entre departement et ville donc par exemple dans notre cas si l'utilisateur saisie un numero_ville ou un nom_ville qui est dans la table MAIS qui n'est pas dans le département saisie alors j'aurais null alors que la ville existe bel et bien dans la base et je devrais avoir donc son numero_ville ou son nom_ville ... Donc je suis peut être obligé de passer par 3 requêtes finalement, non, ou il y a peut être une autre façon de former ma requête de 'vérification de saisie' ? |
|
|
00
|
|
|
#9 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
Tu peux m'envoyer le script de tes deux table departement et ville, pour mieux vous aider |
|
|
00
|
|
|
#10 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
Donc il te faut utiliser une FULL OUTER JOIN Code :
http://www.trivadis.com/Images/nf9is...tcm18-7343.pdf http://www.oreillynet.com/pub/a/netw.../fulljoin.html |
||
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
Apparemment ca ne fonctionne pas, je pense que le mieux est surement de faire 3 requêtes .. :\
Voilà le script de création Code :
|
||
|
|
00
|
|
|
#12 |
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
Tu peux me donner le contenu de la table departement et ville ? |
|
|
00
|
|
|
#13 | ||
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
Biensur, voici
Code :
|
||
|
|
00
|
|
|
#14 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour,
Tu trouveras ci-dessous la solution a ton problème : :p_nom_dpt ----> nom du département :p_numero_ville ----> numéro de la ville :p_nom_ville ----> nom de la ville Code :
|
||
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : avril 2006 Messages : 24 ![]() |
Je te remercie,
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com