Bonjour,

J'ai un petit soucis avec une de mes fonctions.

Elle affiche une adresse en lui donnant un nom, prénom et une date de naissance. Tout vas bien si on donne les 3 données, cependant si je met la date de naissance à NULL, ça ne fonctionne plus.

Quelqu'un peut m'expliquer pourquoi et comment résoudre ce soucis ?

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
28
29
 
CREATE OR REPLACE FUNCTION adress_locat
( v_nom IN Personne.nom%TYPE,
  v_prenom IN Personne.prenom%TYPE,
  v_datenaiss IN Personne.datenaiss%TYPE)
 
RETURN VARCHAR2 
IS
  v_rue Logement.rue%TYPE;
BEGIN
    SELECT rue INTO v_rue
	FROM Personne,Signataire,Contrat,Logement
	WHERE v_nom=Personne.nom
		  AND v_prenom=Personne.prenom
		  AND v_datenaiss=Personne.datenaiss
		  AND Personne.id=Signataire.idpersonne 
          AND Contrat.numero=Signataire.numcontrat 
	      AND Contrat.idlog=Logement.idlogement;
	RETURN(v_rue);
END adress_locat;
/
 
VARIABLE g_rue VARCHAR2(50);
 
EXECUTE :g_rue := adress_locat('Di Toro','Marco','18-02-1980');
PRINT g_rue;
 
EXECUTE :g_rue := adress_locat('Reventlov','Giskard',NULL);
PRINT g_rue;