![]()
PROCEDURE meine_tabelle_anzeigen_excel
--
-- Die blau markierten Stellen müssen individuell
angepaßt werden
--
IS
v_imp_file text_io.file_type;
v_filename varchar2(200);
cursor c_meine_tabelle is
select * from meine_tabelle
where linkcode = :global.linkcode
order by id;
rec_impline meine_tabelle%rowtype;
v_systemRoot varchar2(200);
v_zeile varchar2(4000);
BEGIN
tool_env.getvar('systemroot', v_systemRoot);
v_systemRoot := rtrim(v_systemRoot)||'\temp';
open c_meine_tabelle;
fetch c_meine_tabelle into rec_impline;
IF c_meine_tabelle%found then
v_filename := v_systemRoot||'\impline_a.csv';
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY'); -- Sanduhr ein
v_imp_file :=text_io.fopen(v_filename,'w'); -- csv-Datei
--
zum schreiben öffnen
text_io.put_line(v_imp_file,
impline_a_ueberschrift_setzen||
'id;feld_001;feld_002;feld_003;');
while c_meine_tabelle%found
loop
v_zeile := rec_impline.ID|| ';' ||
rec_impline.FELD_001|| ';' ||
rec_impline.FELD_002|| ';' ||
rec_impline.FELD_003|| ';';
v_zeile := replace(v_zeile,chr(13),'');
v_zeile := replace(v_zeile,chr(191),'');
text_io.put_line( v_imp_file, v_zeile);
fetch c_meine_tabelle into rec_impline;
end loop;
close c_meine_tabelle;
text_io.fclose(v_imp_file);
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT'); -- Sanduhr aus
-- Die Pfadangabe für Excel ist hier der Einfachheithalber fest vorgegenben
host('"C:\Programme\Microsoft Office\Office\EXCEL.EXE" '||v_filename);
message('Anzeige '||v_filename||' beendet');
else
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT'); -- Sanduhr aus
message('keine Daten zur Excelanzeige gefunden',ACKNOWLEDGE);
end if;
exception
when others then
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT'); -- Sanduhr aus
message(sqlerrm);
END;