首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

今天的测试环境

操作系统:中标麒麟 6 64位

数据库:达梦数据库v8.1

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

存储过程的定义

功能说明:获得表的定义

参数说明:

schname:模式名

tablename:表名

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

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

Call sp_tabledef(‘DMHR’,’EMPLOYEE’);

BEIGN

Sp_tabledef(‘DMHR’,’EMPLOYEE’);

END;

这个存储过程是DM数据库独有的,Oracle并没有这个存储过程。但是它存在一个缺点,只能查询表,不能查询其他类型的对象。

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

方法2DBMS_METADATA.GET_DDL

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

我们再测试一下这个包:

GET_DDL最先是在Oracle中使用,因为其功能非常强大,可以用于获取数据库对表、视图、索引、全文索引、存储过程、函数、包、序列、同义词、约束、触发器等的DDL语句。于是DM数据库中借鉴Oracle,做了很好的兼容,只需要知道对象类型、对象名称、对象用户就可以完成上述对象的DDL语句。

若碰到需要查询某对象DDL语句的场景,不妨试试看!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190830A0KCKJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券