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
| CREATE OR REPLACE
PROCEDURE VERIFICATION_ANNÉE AS
res number :=0;
nomfic varchar2(80);
req_count varchar2(4000);
file_id utl_file.file_type;
nb_ligne1 date;
nb_ligne2 number(38);
BEGIN
select 'ANNEE_VF_' || to_char(sysdate,'YYMMDDHH24MISS') || '.log' into nomfic from dual;
file_id := FILE_OPEN1(nomfic, 0);
For cur2 in (select distinct table_name , column_name from USER_TAB_COLUMNS where (column_name like '%MAJ' AND table_name like 'SDNQTW%') OR (column_name like '%MAJ' AND table_name like 'SDNQTD%'))
loop
if cur2.column_name is not null then
res := WRITE_FILE(file_id, ' Table '|| cur2.table_name ||' ');
res := WRITE_FILE(file_id, '');
res := WRITE_FILE(file_id, ' Champ date concerné ' || cur2.column_name||' : ');
-- res := WRITE_FILE(file_id, ' ');
req_count := 'select distinct('||cur2.column_name ||'), count(*) over (partition by '||cur2.column_name ||') from '||cur2.table_name||' where (EXTRACT(YEAR FROM '||cur2.column_name ||') = EXTRACT(YEAR FROM sysdate)) order by '||cur2.column_name ||' desc ';
dbms_output.put_line(substr(req_count,1,250));
execute immediate req_count into nb_ligne1, nb_ligne2;
res := WRITE_FILE(file_id, ' Le nombre d enregistrement est: '|| nb_ligne2 );
res := WRITE_FILE(file_id, ' la date d enregistrement est: '||nb_ligne1 );
res := WRITE_FILE(file_id, '');
end if;
if nb_ligne2 <>0 then
res := WRITE_FILE(file_id, 'Pas de probleme signalé');
res := WRITE_FILE(file_id, '');
else
res := WRITE_FILE(file_id, '---------------------------------------------------------------------------------------------------------------------------------------------------');
res := WRITE_FILE( file_id, 'I PROBLEME DETECTE: NON ALIMENTATION DE LA TABLE :'|| cur2.table_name||' ');
res := WRITE_FILE(file_id, '---------------------------------------------------------------------------------------------------------------------------------------------------');
res := WRITE_FILE(file_id, '');
end if;
end loop;
res := WRITE_FILE(file_id, '********************************************************************************************************************************************************');
res := WRITE_FILE(file_id, '');
UTL_FILE.FCLOSE(file_id); -- Fermeture fichier
END; |
Partager