Oracle获取数据库中的对象创建语句
使用dbms_metadata.get_ddl()函数可以做到。
实验环境:Oracle 11.2.0.4
以获取jingyu用户下的T1表为例:
SQL> conn jingyu/jingyu
Connected.
SQL> select count(1) from t1;
COUNT(1)
----------
100
SQL> select dbms_metadata.get_ddl('TABLE','T1','JINGYU') from dual;
DBMS_METADATA.GET_DDL('TABLE','T1','JINGYU')
--------------------------------------------------------------------------------
CREATE TABLE "JINGYU"."T1"
( "ID" NUMBER NOT NULL ENABLE,
"N" NUMBER,
结果显示不全,设置一下long再查询:
SQL> set long 1000
SQL> r
1* select dbms_metadata.get_ddl('TABLE','T1','JINGYU') from dual
DBMS_METADATA.GET_DDL('TABLE','T1','JINGYU')
--------------------------------------------------------------------------------
CREATE TABLE "JINGYU"."T1"
( "ID" NUMBER NOT NULL ENABLE,
"N" NUMBER,
"CONTENTS" VARCHAR2(4000)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
DBMS_METADATA.GET_DDL('TABLE','T1','JINGYU')
--------------------------------------------------------------------------------
TABLESPACE "DBS_D_JINGYU"
看着不舒服,再设置一下pagesize:
SQL> set pagesize 0
SQL> r
1* select dbms_metadata.get_ddl('TABLE','T1','JINGYU') from dual
CREATE TABLE "JINGYU"."T1"
( "ID" NUMBER NOT NULL ENABLE,
"N" NUMBER,
"CONTENTS" VARCHAR2(4000)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_D_JINGYU"
同样可以查询索引等对象的创建语句:
SQL> select dbms_metadata.get_ddl('INDEX','IDX_T1','JINGYU') from dual;
CREATE INDEX "JINGYU"."IDX_T1" ON "JINGYU"."T1" ("ID")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_D_JINGYU"
分区表和分区索引,同样可以获取到:
create table t_part(
id number,
name varchar2(20),
start_time date,
content varchar2(200)
)partition by range(start_time)
(
partition P20150101 values less than (TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace dbs_d_jingyu,
partition P20150102 values less than (TO_DATE(' 2015-01-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace dbs_d_jingyu,
partition P20150103 values less than (TO_DATE(' 2015-01-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace dbs_d_jingyu
);
alter table t_part add constraint pk_t_part_id primary key(start_time, id) using index local tablespace dbs_i_jingyu;
create index idx_t_part on t_part(start_time, id, name) local tablespace dbs_i_jingyu;
select dbms_metadata.get_ddl('TABLE','T_PART','JINGYU') from dual;
select dbms_metadata.get_ddl('INDEX','IDX_T_PART','JINGYU') from dual;
select dbms_metadata.get_ddl('INDEX','PK_T_PART_ID','JINGYU') from dual;
SQL> set long 10000
SQL> select dbms_metadata.get_ddl('TABLE','T_PART','JINGYU') from dual;
CREATE TABLE "JINGYU"."T_PART"
( "ID" NUMBER,
"NAME" VARCHAR2(20),
"START_TIME" DATE,
"CONTENT" VARCHAR2(200),
CONSTRAINT "PK_T_PART_ID" PRIMARY KEY ("START_TIME", "ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" LOCAL
(PARTITION "P20150101"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ,
PARTITION "P20150102"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ,
PARTITION "P20150103"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ) ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_D_JINGYU"
PARTITION BY RANGE ("START_TIME")
(PARTITION "P20150101" VALUES LESS THAN (TO_DATE(' 2015-01-01 00:00:00', 'SYYY
Y-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_D_JINGYU" ,
PARTITION "P20150102" VALUES LESS THAN (TO_DATE(' 2015-01-02 00:00:00', 'SYYYY
-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_D_JINGYU" ,
PARTITION "P20150103" VALUES LESS THAN (TO_DATE(' 2015-01-03 00:00:00', 'SYYYY
-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_D_JINGYU" )
SQL> select dbms_metadata.get_ddl('INDEX','IDX_T_PART','JINGYU') from dual;
CREATE INDEX "JINGYU"."IDX_T_PART" ON "JINGYU"."T_PART" ("START_TIME", "ID", "
NAME") PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" LOCAL
(PARTITION "P20150101"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ,
PARTITION "P20150102"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ,
PARTITION "P20150103"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" )
SQL> select dbms_metadata.get_ddl('INDEX','PK_T_PART_ID','JINGYU') from dual;
CREATE UNIQUE INDEX "JINGYU"."PK_T_PART_ID" ON "JINGYU"."T_PART" ("START_TIME"
, "ID") PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" LOCAL
(PARTITION "P20150101"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ,
PARTITION "P20150102"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" ,
PARTITION "P20150103"
PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DBS_I_JINGYU" )
获取到的是最完整的对象创建语句。
Oracle获取数据库中的对象创建语句的更多相关文章
- SQL语句获取数据库中的表主键,自增列,所有列
SQL语句获取数据库中的表主键,自增列,所有列 获取表主键 1:SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_U ...
- Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)
Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项) A.cat B.concat C.join D.+ 解答:B
- 通过jdbc获取数据库中的表结构
通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.Met ...
- 如何找出MySQL数据库中的低效SQL语句
面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...
- Oracle 18c 数据库中scott用户不存在的解决方法
Oracle 18c 数据库中scott用户不存在的解决方法 注:该文为转载 上面标题可直接跳转 原文地址:http://www.cnblogs.com/zangdalei/p/5482732.htm ...
- Oracle查询数据库中所有表的记录数
1.Oracle查询数据库中所有表的记录数,但是有可能不准建议用第二种方式进行查询 select t.table_name,t.num_rows from user_tables t 2.创建orac ...
- C#:CodeSmith根据数据库中的表创建C#数据模型Model + 因为没有钱买正版,所以附加自己写的小代码
对于C#面向对象的思想,我们习惯于将数据库中的表创建对应的数据模型: 但假如数据表很多时,我们手动增加模型类会显得很浪费时间: 这个时候有些人会用微软提供的EntityFrameWork,这个框架很强 ...
- 使用 UEditor 编辑器获取数据库中的数据
在 ThinkPHP 3.2.2 中,使用 UEditor 编辑器获取数据库中保存的数据,可以使用 UEditor 自身提供的方法. 首先在视图模板中实例化编辑器,这是出现编辑器界面的必须的行为: & ...
- sql 2000以及2005以上获取数据库中所有的表(不包括系统表)
---------------------------------------------------------------------------- --sql 2005以上数据库 --- 获取数 ...
随机推荐
- 关于array.sort(array,array)
// 基于第一个 System.Array 中的关键字,使用每个关键字的 System.IComparable 实现,对两个一维 System.Array // 对象(一个包含关键字,另一个包含对应的 ...
- 邮件MIME格式分析
http://www.cnblogs.com/crystalray/articles/3302427.html 邮件mime格式 参考: rfc4021,Registration of Mail an ...
- ant重新编译打包hadoop-core-1.2.1.jar时遇到的错
错误1. [root@MyDB01 hadoop]# ant -Dversion=1.2.1 examples 错误: 找不到或无法加载主类 org.apache.tools.ant.launch.L ...
- iPhone X 上删除白条
方案一:纯色背景的情况下,解决方案就是background-color在您的body代码上设置属性: 方案二:视口入,viewport-fit=cover: <meta name="v ...
- 题目1091:棋盘游戏(DFS)
题目链接:http://ac.jobdu.com/problem.php?pid=1091 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...
- 前端代码在线调试&分享网站
1.RunJs 2.CodePen 3.JsFiddle
- Centos 安装yum,安装ansible
今天使用centos安装ansible,发现域名默认安装是未注册的.提示: This system is not registered to Red Hat Subscription Manageme ...
- 【CF908E】New Year and Entity Enumeration 位运算+DP
[CF908E]New Year and Entity Enumeration 题意:给定$M=2^m-1$,我们称一个集合S是好的,当且仅当它满足:1.$\forall a\in S,a\ \ma ...
- Unity3D笔记 GUI 二 、实现选项卡一窗口
实现目标: 1.个性化Box控件 2.新建TextAmount样式 3.新建TextItem样式 一.个性化Windows界面 设置GUI Skin 1.2 部分代码 Rect stateBox = ...
- java的前缀自增自减和后缀自增自减
2.前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算. 3.后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算 实例: 实例 public cla ...