Oracle/MySQL/TDSQL/TiDB/DB2数据库下获取创建对象的DDL语句

本文介绍了如何在不同的数据库管理系统中,如MySQL/TDSQL/TiDB、Oracle和DB2,获取数据库对象(如表、视图、触发器等)的创建DDL语句。这些命令对于数据库管理和维护、版本控制以及数据迁移至关重要。
摘要由CSDN通过智能技术生成
-----------------------------
--MYSQL/TDSQL/TiDB
-----------------------------
-- 获取创建 database 的 DDL 
show create database_name;
-- 获取创建 表 的 DDL 
show create table table_name;
-- 获取创建 视图 的 DDL 
show create view index_name;
-- 获取创建 触发器 的 DDL 
show  create trigger trigger_name;
-- 获取创建 用户 的 DDL 
show create user user_name;



-----------------------------
--ORACLE
-----------------------------
--参考链接 dbeaver, OracleUtils.java
--3个参数依次是 类型、对象名称、对象模式
-- 获得某个schema下所有的表、索引、视图、存储过程、函数的DDL
select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;
select dbms_metadata.get_ddl('VIEW','VIEW_NAME','VIEW_OWNER') from dual;
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','PROCEDURE_OWNER') from dual;
select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;
-- 获得用户的DDL --2个参数依次是 类型、对象名称
select dbms_metadata.get_ddl('USER','USER_NAME') txt from dual;
-- 获得表空间的DDL --2个参数依次是 类型、对象名称
select dbms_metadata.get_ddl('TABLESPACE','TBS_NAME') from dual;


-----------------------------
--DB2
-----------------------------
--参考链接 dbeaver, DB2Utils.java
1.执行获取DDL语句的操作,
--2个参数,第1个输入参数  ... -t 模式.表名 
--2个参数,第1个输入参数  ... -v 模式.视图名
--2个参数,第2个 ? 是输出参数

CALL SYSPROC.DB2LK_GENERATE_DDL('-e -x -td ;  -t S1.T1',?)
CALL SYSPROC.DB2LK_GENERATE_DDL('-e -x -td ;  -v  S1.V1',?)

2.根据返回的OP_TOKEN查询DDL语句
SELECT OP_TOKEN,OBJ_SCHEMA,OBJ_NAME,OBJ_TYPE,SQL_OPERATION,sql_stmt FROM SYSTOOLS.DB2LOOK_INFO WHERE OBJ_NAME='DB2OPER' AND OBJ_SCHEMA='DBI' AND OP_TOKEN=1558;

3.根据返回的OP_TOKEN清除查询日志
CALL SYSPROC.DB2LK_CLEAN_TABLE(1557)

-- DB2: 第二种方式(使用DB2客户端)
db2look -d 数据库名  -e -t 模式名.表名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值