Salut,
je suis sur Oracle Release 9.0.1.0.1
Je désire crée une vue sur les tables :
EMP( EMPNO NOT NULL NUMBER(4), ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) )
PHOTO( ID NOT NULL NUMBER(7) , DESC VARCHAR2(30), TYPE VARCHAR2(30), BLOB NOT NULL LONG RAW, EMPNO NOT NULL NUMBER(4) )
EMP( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO )
PHOTO( ID , DESC , TYPE , BLOB , EMPNO )
Les tables contiennent respectivement :
- données de l’employé
- photos des employés, plus une photo spéciale (cliché vide identifié par PHOTO.ID = 0 et PHOTO.EMPNO = 0 qui contient le texte « Photo Non Disponible »).
J’ai crée une vue comme suit :
Code :
CREATE OR REPLACE VIEW PH_VIEW_DEPT (V_EMPNO, V_DEPTNO, V_ID, V_BLOB) AS
SELECT EMP.EMPNO, EMP.DEPTNO, PHOTO.ID, PHOTO.BLOB
FROM PHOTO,EMP
WHERE ( EMP.EMPNO = PHOTO.EMPNO(+) ) WITH READ ONLY
PH_VIEW_DEPT (V_EMPNO, V_DEPTNO, V_ID, V_BLOB )
NB:
“EMP.EMPNO = PHOTO.EMPNO(+)” pour ramené aussi les employé qui n’ont pas de photo (je crois jointure externe)
C'est fonctionnel et elle me ramène les photos des agents (ceux qui ont des photos) pour les autres qui n'ont pas, les champs PHOTO.ID et PHOTO.BLOB sont nulle, je désire modifié le verbe select de ma vue a fin de ramené pour les employés n'ayant pas de photos le cliché vide "PHOTO.id=0".
Je trouve pas comment procéder, s'il vous plait aidez-moi.
Merci.
PS: j'ai simplifié le problème avec les tables demos d'oracle, pour ensuite l'adapter pour mes tables.
Partager