可以按需在数据库中批量生成数据库字典,非常实用。
------------------------------------------------------------------------
SET SERVEROUTPUT ON
SET line 300
exec dbms_output.enable(1000000);
DECLARE
CURSOR cur_table IS
SELECT distinct lbzd,cslbmc
FROM s_zhcs
WHERE csfl IS NULL;
CURSOR cur_column (p_lbzd VARCHAR2)IS
SELECT xtdm,csmc
FROM s_zhcs
WHERE lbzd=p_lbzd
ORDER BY xtdm;
v_t_line VARCHAR2(1000);
v_c_line VARCHAR2(1000);
v_data_type VARCHAR2(20);
v_pk VARCHAR2(10);
v_uk VARCHAR2(10);
v_zdx VARCHAR2(10);
v_count NUMBER;
v_t_rownum NUMBER;
v_c_rownum NUMBER;
BEGIN
dbms_output.put_line('<HTML>');
dbms_output.put_line('<HEAD>');
dbms_output.put_line('<TITLE>字典项一览表</TITLE>');
dbms_output.put_line('</HEAD>');
dbms_output.put_line('<BODY>');
dbms_output.put_line('<DIV ALIGN="CENTER"><FONT SIZE=+3 COLOR=0000FF FACE=helvetica><B>字典项一览表</B></FONT></DIV>');
dbms_output.put_line('<TABLE ALIGN="CENTER" BORDER="1">');
dbms_output.put_line('<TR><TH WIDTH=100>序号</TH><TH WIDTH=300>参数类别标识</TH><TH WIDTH=300>参数类别名称</TH></TR>');
v_t_rownum := 0;
FOR c_t IN cur_table LOOP
v_t_rownum := v_t_rownum + 1;
v_t_line:= '<TR><TD WIDTH=100>'||v_t_rownum||'</TD><TD WIDTH=300><A HREF="数据字典.htm#'||c_t.lbzd||'">'||c_t.lbzd||'</A></TD><TD WIDTH=300><A HREF="数据字典.htm#'||c_t.lbzd||'">'||c_t.cslbmc||'</A></TD></TR>';
dbms_output.put_line(v_t_line);
END LOOP;
dbms_output.put_line('</TABLE>');
v_t_rownum := 0;
FOR c_t IN cur_table LOOP
v_t_rownum := v_t_rownum + 1;
v_t_line := '<a name="'||c_t.lbzd||'"></a>';
dbms_output.put_line(v_t_line);
v_t_line := '<h2 class="H1">'||v_t_rownum||' '||c_t.lbzd||' '||c_t.cslbmc||'</h2>';
dbms_output.put_line(v_t_line);
dbms_output.put_line('<TABLE ALIGN="CENTER" BORDER="1">');
dbms_output.put_line('<TR><TH WIDTH=200>系统代码</TH><TH WIDTH=500>参数名称</TH></TR>');
v_c_rownum := 0;
FOR c_c IN cur_column(c_t.lbzd) LOOP
v_c_line := '<TR><TD WIDTH=200>'||c_c.xtdm||'</TD><TD WIDTH=500>'||c_c.csmc||'</TD></TR>';
dbms_output.put_line(v_c_line);
END LOOP;
dbms_output.put_line('</TABLE>');
END LOOP;
dbms_output.put_line('</BODY>');
dbms_output.put_line('</HTML>');
END;
/