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 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| CREATE OR REPLACE TYPE OBJ$BIB AS OBJECT (
utilisateur VARCHAR2(30),
langue VARCHAR2(4),
programme VARCHAR2(20),
/****************************************************
Construction de l'objet
recoit : - Nom utilisateur
- Langue
- Programme
Renvoit : - L'object
****************************************************/
CONSTRUCTOR FUNCTION OBJ$BIB(p_utilisateur IN VARCHAR2,p_langue IN VARCHAR2,
p_programme IN VARCHAR2) RETURN SELF AS RESULT,
/****************************************************
Recupération d'un parametre de type alphanumerique
recoit : - Famille
- numero
Renvoit : - Valeur du parametre
****************************************************/
MEMBER FUNCTION RECUP_PARAMETRE_A(p_famille IN VARCHAR2,p_num IN NUMBER)
RETURN VARCHAR2,
/****************************************************
Edition d'une ligne dans la table log
recoit : - Niveau du message
- Message
- Centrage par defaut à gauche
Renvoit : - rien
****************************************************/
MEMBER PROCEDURE EDITION_MESSAGE_LOG(p_niveau IN NUMBER,
p_message IN VARCHAR2,p_centrage IN VARCHAR2:='G')
);
/
show error;
CREATE OR REPLACE TYPE BODY OBJ$BIB AS
/****************************************************/
CONSTRUCTOR FUNCTION OBJ$BIB(p_utilisateur IN VARCHAR2,p_langue IN VARCHAR2,
p_programme IN VARCHAR2) RETURN SELF AS RESULT
AS
BEGIN
/* Initialisation des variables de l'objet */
SELF.utilisateur:=p_utilisateur;
SELF.langue:=p_langue;
SELF.programme:=p_programme;
/* Initialisation du fichier log */
DELETE FROM LOG_PROG
WHERE UTILISATEUR=p_utilisateur AND PROGRAMME=p_programme;
RETURN;
END;
/****************************************************/
MEMBER FUNCTION RECUP_PARAMETRE_A(p_famille IN VARCHAR2,p_num IN NUMBER)
RETURN VARCHAR2
IS
l_retour VARCHAR2(250);
BEGIN
SELECT P_CHAR
INTO l_retour
FROM A_PARAM
WHERE FAMILLE=p_famille
AND NUM=p_num;
RETURN l_retour;
EXCEPTION
WHEN NO_DATA_FOUND THEN
SELF.EDITION_MESSAGE_LOG(1,'PARAMETRE ALPHANUMERIQUE '||p_num||
' DE LA FAMILLE '||p_famille||' INEXISTANT. REMPLACER PAR NULL');
RETURN NULL;
WHEN OTHERS THEN
SELF.EDITION_MESSAGE_LOG(1,'ERREUR RECUPERATION PARAMETRE '||p_num||
' DE LA FAMILLE '||p_famille||':'||SQLCODE||';'||SQLERRM);
RETURN NULL;
END RECUP_PARAMETRE_A;
/****************************************************/
MEMBER PROCEDURE EDITION_MESSAGE_LOG(p_niveau IN NUMBER,
p_message IN VARCHAR2,p_centrage IN VARCHAR2:='G')
IS
l_indice NUMBER:=1;
l_message VARCHAR2(1100):=NULL;
BEGIN
SELECT NVL(MAX(NVL(ORDRE,0))+1,1)
INTO l_indice
FROM LOG
WHERE UTILISATEUR=SELF.utilisateur
AND PROGRAMME=SELF.programme;
SELECT DECODE(p_niveau,1,'[MSG DBG] ','')||SUBSTR(p_message,1,1000)
INTO l_message
FROM DUAL;
INSERT INTO LOG_PROG(UTILISATEUR,PROGRAMME,ORDRE,MESSAGE,NIVEAU,CENTRAGE)
VALUES(SELF.utilisateur,SELF.programme,l_indice,l_message,
p_niveau,p_centrage);
END EDITION_MESSAGE_LOG;
END; |
Partager