SQL PL/SQL définis par l'utilisateur de multiples exception de la gestion d'erreur (null)

Je suis en train d'écrire une procédure stockée qui va avoir 2 erreurs d'exception.

Create table Employee 
(emp_num varchar(10) primary key, 
emp_name varchar(10),
DOB date,
job_title varchar(15),
marriage_date date,
spouseid varchar(10) references Employee(emp_num),
dept_id varchar(10) references Department(dept_id));

COMME vous le voyez, c'est une table qui ont employé info. Il y a une relation récursive ici qui dit que vous devez fournir des renseignements sur le conjoint si le conjoint est également employé dans l'entreprise (spouseid + marriage_date).
J'ai créé une procédure stockée qui demande le numéro d'employé et vous donne spouseid, le nom et la date de mariage.

CREATE OR REPLACE PROCEDURE DISP_SPOUSE
(SP_EMP_NUM IN EMPLOYEE.EMP_NUM%TYPE) AS
SP_NAME EMPLOYEE.EMP_NAME%TYPE;
SP_SPOUSEID EMPLOYEE.SPOUSEID%TYPE;
SP_MARRIAGE_DATE EMPLOYEE.MARRIAGE_DATE%TYPE;

BEGIN
SELECT SPOUSEID, EMP_NAME, MARRIAGE_DATE
INTO SP_SPOUSEID, SP_NAME, SP_MARRIAGE_DATE
FROM EMPLOYEE
WHERE EMP_NUM = SP_EMP_NUM;

DBMS_OUTPUT.PUT_LINE ((SP_SPOUSEID)||' '||
(SP_NAME)||' '||(SP_MARRIAGE_DATE));
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO EMPLOYEE WITH THAT NUMBER:'||SP_EMP_NUM);

END;
/

J'ai aussi besoin d'ajouter un deuxième exception défini par l'utilisateur qui sera déclenché si il n'y a pas de spouseid. donc, je suis en train de penser à quelque chose comme ceci:

DECLARE
SP_EXCEPTION EXCEPTION;
PRAGMA EXCEPTION_INIT (SP_EXCEPTION, -20001);
BEGIN
RAISE_APPLICATION_ERROR (-20001, 'NO EMPLOYEE SPOUSE');
EXCEPTION
WHEN SP_EXCEPTION
THEN
DBMS_OUTPUT.PUT_LINE ( SQLERRM );
END;
/

Puis ajouter la deuxième exception au code de procédure stockée (avant ou après no_data_found exception:

WHEN SPOUSEID IS NULL
RAISE SP_EXCEPTION;

end;
/

Je vais avoir des problèmes sur le spouseid = null. est-il une autre façon d'écrire? (certaines valeurs qui ont été insérées dans spouseid sont en effet null).