oracle存储过程--导出数据库表的说明文档

Oracle查询表的名字和comments

select a.table_name,b.comments from user_tables a,ALL_TAB_COMMENTS b where a.table_name=b.table_name

查询字段的名字和comments

select distinct a.COLUMN_NAME,b.comments from user_tab_columns a,user_col_comments b where a.COLUMN_NAME=b.column_name and a.TABLE_NAME=b.table_name and a.table_name=upper(‘A_COUNT‘);

创建一个目录

create directory exp_dir as ‘/home/oracle‘;

赋权限(需要sysdb用户)

grant create any directory to scott;

导出表和表字段注释的存储过程

create or replace procedure export_tableInfo as

fhandle utl_file.file_type;

begin
fhandle := utl_file.fopen(‘EXP_DIR‘, ‘example.html‘, ‘w‘,32767);
utl_file.put_line(fhandle ,‘<!DOCTYPE HTML><html><head><meta charset="utf-8"><head><body>‘);
for t in (select a.table_name,b.comments from user_tables a,ALL_TAB_COMMENTS b where a.table_name=b.table_name and a.table_name not like ‘T_BME%‘ oder by a.table_name) loop
--dbms_output.put_line(t.table_name||‘,‘||t.comments);
utl_file.put_line(fhandle ,‘<p>‘||t.table_name||‘,‘||t.comments||‘</p>‘);
utl_file.put_line(fhandle ,‘<table border="1">‘);
for c in (select distinct a.column_name,a.data_type,a.data_length,b.comments from user_tab_columns a,user_col_comments b where a.table_name=b.table_name and a.table_name=t.table_name and a.column_name=b.column_name) loop
--column_name,data_type ,data_length,data_precision,data_scale
--dbms_output.put_line(c.column_name||‘,‘||c.data_type||‘,‘||c.data_length||‘,‘||c.comments);
utl_file.put_line(fhandle ,‘<tr><td>‘||c.column_name||‘</td><td>‘||c.data_type||‘</td><td>‘||c.data_length||‘</td><td>‘||c.comments||‘</tr>‘);
end loop;
utl_file.put_line(fhandle ,‘</table>‘);
end loop;
utl_file.put_line(fhandle ,‘</body></html>‘);
utl_file.fclose(fhandle);
end;

oracle存储过程--导出数据库表的说明文档

时间: 2024-11-08 19:11:31

oracle存储过程--导出数据库表的说明文档的相关文章

关于PowerDesigner导出数据库表到word文档

一,查看所有模板: powerdesigner默认为我们提供了很多的模版,在工具栏中选择[Report(报告)--->Report Template]即可看到所有的默认模版.如图一: 二,新建/修改模板: 1.在工具栏中选择[Report(报告)--->Reports](快捷键Ctrl+E),然后创建一个New Report,如下图二所以,选择Standard Physical Report,这里选择的标准的模版,点击OK确定. 如图二 2.从工具栏[Report--->Print Pr

【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档

对于DBA或开发来说,如何规范化你的数据库表结构文档是灰常之重要的一件事情.但是当你的库,你的表排山倒海滴多的时候,你就会很头疼了. 推荐一款工具DBExportDoc V1.0 For MySQL(MySQL数据库表结构导出器). 介绍: DBExportDoc V1.0 For MySQL是一款利用office特性VBA开发的小工具,利用此工具可以将本机MySQL上任意数据库.任意表的数据结构导出.但是它不是一款你安装是一路next到finish就可以立刻使用的. 要注意的有两点: 首先,你

oracle中导出导入表以及数据

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用.执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在oracle 8i 中安装目录\ora81\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出.oracl

Oracle,导出的表不全,以及数据库导入报错

公司有两个环境下的数据库,版本不同,一个是11g r2,另一个是10g r2 首先在11g r2下用exp导出数据库备份文件,发现部分表缺失. 原来这部分表是空的,11G中新特性,当表无数据时,不分配segment,以节省空间.而使用exp命令时,无Segment的表不会被导出. 解决方案: http://wenku.baidu.com/view/7beb56f57c1cfad6195fa702.html 好不容易全部导出来后,在10g r2环境下使用imp命令导入时报错: IMP-00010:

导出数据库表为world文档说明,已经PowerDesigner导出表结构pdm设计文档

如何使用"mysql导出数据库结构为world工具"以及如何使用powerdesigner映射数据库模型 一.通过powerdesigner配置ojdbc 1.安装并打开powerdesigner,新建一个模型文档,如下图 2.选择"database" -> "update model from database" 3.弹出窗口后选择"using a data cource",点击右侧图标 4.选择"confi

解决oracle 11g 导出空表的方法

ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2)设置deferred_segment_creation参数 SQL> show parameter deferred_segment_creation NAME TYPE VALUE ------------------------------------

使用mysqldump导出数据库(表)

mysqldump用来备份数据库或在不同数据库之间迁移数据,mydqldump的备份内容包括用来创建表和装载表的SQL语句. 一.mysqldump使用方法 (1).备份单个数据库或数据库中的部分表,使用mysqldump导出之前,会锁定表的写操作,当数据导出完成后,锁被释放. shell> mysqldump [options] db_name [table_name] (2).备份指定的一个或多个数据库 shell> mysqldump [options] --database DB1 [

mysql命令导出数据库表数据

最常用的: mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql 这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数 C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_drv > e:\date_drv.sql mysql的数据导入

oracle EXP 导出空表的方法

Oracle Exp 导出默认只会将有数据的导出,要导出空表的话可以先把下面查询出来的语句,执行后,再进行导出 select 'alter table '||owner||'.'||table_name||' allocate extent;' from dba_tables t where T.SEGMENT_CREATED='NO' AND t.OWNER like '%???%' order by t.OWNER;