Dans le cadre d'un travail de retro documentation, je dois documenter les différentes actions d'un traitement.
Celui-ci se base entre autre sur un package SQL.
Ayant des notions basiques en SQL, je ne suis vraiment pas câlé en algorithmique et en programmation en général.
Fonctionellement, ce package est utilisé par un ETL interne, qui suite à la reception de 2 fichiers sources retraite les données fournis . Après cela, 2 tables cibles sont alimentées.
En gros le package RAULPCPT s'occupe de l'alimentation de ces 2 tables.
J'aurais besoin de votre aide pour comprendre les différentes fonctions composants ce package.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 create or replace package RAULPCPT as -- 23/04/09 ST CG -- Fichier de log de CPT FicLog UTL_FILE.FILE_TYPE; -- 23/04/09 ST CG -- Ouverture du fichier de log FUNCTION OPEN_LOG(pNomProc in varchar2, pNomFichier in varchar2, pDir in varchar2) return varchar2; -- 23/04/09 ST CG -- Fermeture du fichier de log PROCEDURE LOG_MESSAGE(pNomProc in varchar2, pMessage in varchar2); -- Lance les differentes procedures d'alimentation des tables ACCOUNT et ENTITY FUNCTION CPT_01(pPeriode in varchar2, pCodeEnt in varchar2) return varchar2;
- Donc ce que j'ai compris c'est que tout d'abord, On définit le type, déclare les variables dans l'en-tête des différentes fonctions et procédures.
la ligne ci-dessus signifie, par exemple que la fonction OPEN_LOG prend en entrée les variables pNomProc , pNomFichier , pDir tous 3 de types varchar2 et renvoie une valeur de même type
Code : Sélectionner tout - Visualiser dans une fenêtre à part FUNCTION OPEN_LOG(pNomProc in varchar2, pNomFichier in varchar2, pDir in varchar2) return varchar2;
Maintenant , en regardant la fonction OPEN_LOG , je n'arrive pas à comprendre ce qu'elle fait exactement :
Notamment la ligne suivante : RAULPCOM.OPEN_LOG(pNomProc, pDir, pNomFichier, FicLog);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 OPEN_LOG(pNomProc in varchar2, pNomFichier in varchar2, pDir in varchar2) return varchar2 as begin RAULPCOM.OPEN_LOG(pNomProc, pDir, pNomFichier, FicLog); return 'OK'; exception when others then return 'KO'; end OPEN_LOG;
- Même chose pour la procédure LOG_MESSAGE :
Et pour la dernière, pouvez-vous svp m'expliquer ce qu'elle fait exactement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 -- Log d'un message PROCEDURE LOG_MESSAGE(pNomProc in varchar2, pMessage in varchar2) as begin RAULPCOM.LOG_MESSAGE(pNomProc, FicLog, pMessage); end LOG_MESSAGE;
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
30
31
32
33
34
35 FUNCTION CPT_01(pPeriode in varchar2, pCodeEnt in varchar2) return varchar2 as codRetGeneral varchar2(2) := 'OK'; codRet1 varchar2(2) := 'OK'; codRet2 varchar2(2) := 'OK'; codRet3 varchar2(2) := 'OK'; ref_fichier UTL_FILE.FILE_TYPE; begin RAULPCOM.HORODATE_DEB_LOG('CPT', FicLog); -- pour test codRet1 := INIT_CPT; if codRet1 = 'OK' then codRet2 := ALIM_ENTITY(pPeriode); codRet3 := ALIM_ACCOUNT(pPeriode); if codRet2 = 'KO' or codRet3 = 'KO' then codRetGeneral := 'KO'; end if; else codRetGeneral := 'KO'; end if; RAULPCOM.HORODATE_FIN_LOG('CPT', FicLog); LOG_MESSAGE('CPT', 'CPT code retour = ' || codRetGeneral); return codRetGeneral; exception when others then LOG_MESSAGE('CPT', 'CPT code retour = KO'); RAULPCOM.HORODATE_FIN_LOG('CPT', FicLog); return 'KO'; end CPT_01;
Merci pour votre aide et désolé si mes questions peuvent paraître triviale.
Partager