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
|
create or replace
PROCEDURE P
( MYDIR IN VARCHAR2
, FIC IN VARCHAR2
) AS
monFichier UTL_FILE.FILE_TYPE;
buf VARCHAR2(4000);
TYPE ASSO IS RECORD (blc_zon_id varchar2(128), lib_value varchar2(128));
TYPE ASSO_TAB IS TABLE OF ASSO;
my_asso asso;
my_asso_tab asso_tab := asso_tab();
i integer := 1;
p1 varchar2(128);
p2 varchar2(128);
BEGIN
monFichier := utl_file.fopen(MYDIR,FIC,'r');
-- interrogation du fichier et construction d'une liste
loop
begin
utl_file.get_line(monfichier, buf);
exception
when no_data_found then exit;
end;
-- Premier découpage
if (buf is not null) then
IF (instr(buf,'=') = 0) THEN
my_asso.blc_zon_id:=substr(buf,instr(buf,'=')+1);
my_asso.lib_value:=null;
ELSE
my_asso.blc_zon_id:=substr(buf,0,instr(buf,'=')-1);
my_asso.lib_value:=substr(buf,instr(buf,'=')+1);
END IF;
my_asso_tab.extend;
my_asso_tab(i):= my_asso;
i:=i+1;
end if;
end loop;
utl_file.fclose(monfichier);
-- Affichage
for i in 1..my_asso_tab.count loop
dbms_output.put_line(rpad('cle='|| my_asso_tab(i).blc_zon_id, 40, ' ') ||
rpad('valeur='|| my_asso_tab(i).lib_value,40,' '));
end loop;
END P; |
Partager