注册
数据库里表太多?快速获取某张表的表定义语句有妙招
专栏/金的探索记录/ 文章详情 /

数据库里表太多?快速获取某张表的表定义语句有妙招

2021/01/14 2326 1 0
摘要 数据库里表太多?快速获取某张表的表定义语句有妙招

当数据库含有几万张表,又需要快速获取到某个表的 DDL 时,如果通过管理工具一行行的找就太不方便了;而且作为一个熟练的技术人员,没有几个小诀窍提高工作效率怎么行?以下介绍两个能够快速轻松地完成本次任务的“小方法”,一起来看看吧。

方法一:调用 DM 系统存储过程 SP_TABLEDEF

定义:

SP_TABLEDEF ( schname varchar(128), tablename varchar(128))

功能说明:获得表的定义

参数说明:schname:模式名;tablename:表名。

这个存储过程,直接 call 调用或者写在匿名块中调用均可。

比如,查询 DMHR 模式下 EMPLOYEE 表定义:

CALL SP_TABLEDEF('DMHR','EMPLOYEE')
begin SP_TABLEDEF('DMHR','EMPLOYEE'); end;

这个只有 DM 兼容,Oracle 并没有这个存储过程。这个方法存在一个缺点,只能查询表,不能查询其他类型的对象。

所以这里推荐的第二种方法,也是笔者最常用的查询表定义的方法。

方法二:DBMS_METADATA.GET_DDL

DBMS_METADATA 系统包包含了许多实用的函数,有兴趣可以查看 Oracle 官方文档慢慢了解,这里就不一一赘述了,介绍一下 GET_DDL。

2.png

举例:

select dbms_metadata.get_ddl('TABLE','EMPLOYEE','DMHR') from dual;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服