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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| PROCEDURE p_creer_utilis ( p_logagent IN utilisacii.logagent%TYPE,
p_nni IN utilisacii.nni%TYPE,
p_pwdagent IN utilisacii.pwdagent%TYPE,
p_utilisat IN utilisacii.logagent%TYPE
) AS
enregistrement_existe EXCEPTION;
PRAGMA EXCEPTION_INIT(enregistrement_existe, -00001);
INTEGRITY_ERROR EXCEPTION;
errno INTEGER;
errmsg CHAR(200);
DUMMY INTEGER;
FOUND BOOLEAN;
v_errnoora errors.errnoora%TYPE;
v_errmsgora errors.errmsgora%TYPE;
-- DECLARATION DE LA CONTRAINTE INSERTCHILDPARENTEXIST POUR LE CODE DE "AGENT"
CURSOR CPK1_UTILISACII(var_nni utilisacii.nni%TYPE) IS
SELECT 1
FROM agent ag
WHERE ag.nni = var_nni;
BEGIN
-- LE CODE DE "AGENT" DOIT EXISTER POUR LA CREATION DE "UTILISACII"
IF p_nni IS NOT NULL THEN
OPEN CPK1_UTILISACII(p_nni);
FETCH CPK1_UTILISACII INTO DUMMY;
FOUND := CPK1_UTILISACII%FOUND;
CLOSE CPK1_UTILISACII;
IF NOT FOUND THEN
errno := -20600 ;
errmsg := '%s' || p_nni || '%s' || p_logagent || '%f';
-- errmsg := 'Code de "AGENT" inconnu. Creation de "UTILISACII" interdite.';
RAISE INTEGRITY_ERROR;
END IF;
ELSE
errno := -20602 ;
errmsg := '%s' || p_logagent || '%f';
RAISE INTEGRITY_ERROR;
END IF;
INSERT INTO utilisacii ( logagent,
nni,
pwdagent
)
VALUES ( p_logagent,
p_nni,
p_pwdagent
);
COMMIT;
-- GESTION DES ERREURS
EXCEPTION
WHEN INTEGRITY_ERROR THEN
RAISE_APPLICATION_ERROR(errno, errmsg);
ROLLBACK;
WHEN enregistrement_existe THEN
errno := -20601;
errmsg := '%s' || p_logagent || '%f';
RAISE_APPLICATION_ERROR(errno, errmsg);
ROLLBACK;
WHEN OTHERS THEN
errno:= -20603 ;
errmsg := '%s' || p_logagent || '%s' || SQLERRM (SQLCODE) ||'%f';
v_errnoora := SQLCODE;
v_errmsgora := SUBSTR(SQLERRM,1, 200);
pkg_errors.p_enregistrer_erreur ( p_utilisat,
3,
'pkg_utilisateur.p_creer_utilis',
v_errnoora,
v_errmsgora,
errno,
errmsg
);
RAISE_APPLICATION_ERROR(errno, errmsg);
ROLLBACK;
END p_creer_utilis ; |
Partager