Displaying config for Embedded PLSQL Gateway
4tm.biz
,
oracle
,
sql scripts
,
plsql
Jose Luis Canciani
Recently I posted an article about displaying a binary file from pl/sql directly to a browser. This is done with 10.2's feature EPG (Embedded PL/SQL Gateway). Yes, you can serve HTTP content (html, js, json, binary files like images and of course xml) directly from your Oracle database. I'll be posting a detailed article about how to configure it (if you need help now, check out this site). For now I'll post a very handy script I've just written.
Sometimes you don't know how EPG is configured and you have to go through the DBMS_EPG package to find that out. It's not a straight thing: you need to do some plsql programming... it would be nice a v$ view but it's not available as far as I know. So this script show come handy for those in need (I know I'll be one of them in the future ;) ).
set serveroutput on
declare
/**
* Get all the database DADs and their configuration
* Written by jose.canciani
* Source: http://www.4tm.com.ar/4tmsite/wordpress/?p=31
*/
dads dbms_epg.varchar2_table;
mappings dbms_epg.varchar2_table;
attr_names dbms_epg.varchar2_table;
attr_values dbms_epg.varchar2_table;
begin
dbms_output.put_line('-Global Attributes:');
dbms_epg.get_all_global_attributes(attr_names,attr_values);
if attr_names.count > 0 then
for i in 1..attr_names.count
loop
dbms_output.put_line('- '||attr_names(i)||': "'||attr_values(i)||'"');
end loop;
else
dbms_output.put_line('- Not global attributes found.');
end if;
dbms_output.new_line;
dbms_epg.get_dad_list(dads);
for i in 1..dads.count
loop
dbms_output.put_line('-DAD: "'||dads(i)||'"');
dbms_epg.get_all_dad_mappings(dads(i),mappings);
dbms_output.put('- Mappings:');
for j in 1..mappings.count
loop
dbms_output.put(' "'||mappings(j)||'"');
end loop;
dbms_output.new_line;
dbms_output.put('- Authorized Users:');
for j in (select username from dba_epg_dad_authorization where dad_name = dads(i))
loop
dbms_output.put(' "'||j.username||'"');
end loop;
dbms_output.new_line;
dbms_output.put_line('- Attributes:');
dbms_epg.get_all_dad_attributes(dads(i),attr_names,attr_values);
for j in 1..attr_names.count
loop
dbms_output.put_line('- '||attr_names(j)||': "'||attr_values(j)||'"');
end loop;
end loop;
end;
/
Here's a quick output of the script (I only have one DAD configured and no global attributes):
-Global Attributes: - Not global attributes found. -DAD: "ORAMON" - Mappings: "/oramon/*" - Authorized Users: "ORAMON" - Attributes: - database-username: "ORAMON" - default-page: "showpage?p_name=index.html" - error-style: "DebugStyle" - owa-debug-enable: "On"
That's all!
