Oracle简单易用的表结构导出方法

最近做项目时需要给客户导出数据库表结构文档,库中表名及列已有注释,可是要输出一份表结构文档要借助第三方工具(如powerdesigner),那有没有更简单的方式呢?当然有,自己做丰衣足食!

附代码(将输出的文本存入x.htm,双击查看就行,至于排版可以拷贝页面到word中搞定):

declare
i integer;
begin
i:=1;
for tbl in(
select
a.table_name,b.comments
from user_tables a,ALL_TAB_COMMENTS b where a.table_name=b.table_name
and b.comments is not null )
loop

    dbms_output.put_line('<br/><h2>'||i||'.'||tbl.comments || '('|| tbl.table_name ||')</h2>');

    dbms_output.put_line('<table border=1 bordercolor=black><tr><th>字段名</th><th>数据类型</th><th>长度</th><th>精度</th><th>小数位</th><th>是否为空</th><th>注释</th></tr>');
    --列
    for col in(
     SELECT a.table_name, a.column_name, a.data_type, a.data_length, a.data_precision,
     a.data_scale, a.nullable, b.comments
     FROM user_tab_columns a,user_col_comments b 
     where a.TABLE_NAME=b.table_name 
     and a.COLUMN_NAME=b.column_name and b.table_name = tbl.table_name
     --and b.comments is null 
    )
    loop
        dbms_output.put_line('<tr><td>'||col.column_name || '</td><td>'||col.data_type || '</td><td>'||col.data_length || ' </td><td>'||col.data_precision || ' </td><td>'||col.data_scale || '</td><td>'||col.nullable || '</td><td>'||col.comments || '</td></tr>');

    end loop;

    dbms_output.put_line('</table>');

    i:=i+1;

end loop;

end;

当然mysql的按上面的思路写一份即可,不过Mysql-front本身也可以导出pdf。

你可能感兴趣的:(oracle,数据库-表结构文档,mysql思路)