I forbindelse et behov for at vise hvem der er ansvarlig DBA - har det primære ansvar - for databaser i huset, opstod der et behov for dels at kunne central vedligeholde en sådan liste, og dels at kunne få vist dette som f.eks en html fil. Nendenstående er vel hvad man kan kalde en budget model, idet html filen genereres 1 gang i døgnet og ftps op til et centralt sted på en intranet lokalisation. Jeg havde ikke adgang til et PLSQL cartridge, hvilket jeg har i dag - men når man ikke har det, kan man f.eks gøre som følger.

I mit tilfælde opererer jeg med et $work katalog og et $sql. $work er der jeg ligger scripts der afvikler SQL filerne - det kan sagtens koges sammen, men det er nu måden jeg gør det på.

[workday:XO:/oraadmin/work]cat vis_dbansvar_html

# Programmet viser hvem der er ansvarlige i DBA for databaserne. Output er en html fil.

dbansvarpw=`grep dbansvarpw /opt/.pw/XO|cut -d'=' -f2` # der arbejdes med en central password fil

sqlplus -S dbansvar/$dbansvarpw@XO  @$sql/vis_dbansvar_html.sql /oraadmin/work/vis_dbansvar_data.html

Selve SQL filen, benytter owa_util.showpage til at vise output fra rutinen dba_html.vis_dba_ansvarlige. Dette virker dog ikke bare lige umiddelbart, og løsningen er som i nedenstående at sætte et minimum af CGI environment op - så virker det.

[workday:XO:/oraadmin/work]cat $sql/vis_dbansvar_html.sql
set heading off
set echo off
set pause off
set pagesize 0
set feedback off
set termout off
set verify off
set long 65000

spool &1

exec owa.num_cgi_vars     := 0;
exec owa.cgi_var_name (1) := 1;
exec owa.cgi_var_val (1)  := 1;
exec owa.init_cgi_env (1, owa.cgi_var_name, owa.cgi_var_val);
set serveroutput on
exec dba_html.vis_dba_ansvarlige;
exec owa_util.showpage;

spool off
exit

Rutinen dba_html.vis_dba_ansvarlige benytter sig af 1 central kommando, nemlig HTP.P. F.eks ville følgende kunne erstatte dba_html.vis_dba_ansvarlige, og outputte hello world ned i en html fil.

create or replace procedure vis_dba_ansvarlige is
begin
   htp.p('<html>');
   htp.p('<head>');
   htp.p('<title>Simpel html fil</title>');
   htp.p('</head>');
   htp.p('<body>');
   htp.p('<p>Hello world</p>');
   htp.p('</body>');
   htp.p('<html>');
end;