DBMS_METADATA中使用SESSION_TRANSFORM过滤不想获取的DDL
我们一般使用dbms_metadata.get_ddl获取对象的ddl的时候,有时会获取一些其它额外的信息,比如当你想获取表的创建语句的时候,你会得到表的约束信息,这个信息可能是你不想要的,那么就能够用SESSION_TRANSFORM对它进行过滤。
看以下的演示样例,创建一个有主键和外键的表,获取他的ddl语句:
SQL> CREATE TABLE tb1 (id int primary key); Table created. SQL> create table tb2 (id int primary key references tb1(id)); Table created.
SQL> insert into tb1 values(1); 1 row created. SQL> commit; Commit complete. SQL> insert into tb2 values(1); 1 row created. SQL> commit; SQL> select dbms_metadata.get_ddl('TABLE','TB2','TEST') from dual; DBMS_METADATA.GET_DDL('TABLE','TB2','TEST')
-------------------------------------------------------------------------------- CREATE TABLE "TEST"."TB2"
( "ID" NUMBER(*,0),
PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE,
FOREIGN KEY ("ID")
REFERENCES "TEST"."TB1" ("ID") ENABLE
) 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 DE
FAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"
不单单是获取到了创建的基本字段的语句。还有主键,约束。外键。存储參数。表空间等,假设这些你不须要,都是能够进行过滤的,比如我过滤掉主键、外键、存储信息
使用例如以下语句:
exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'REF_CONSTRAINTS',false);
exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'CONSTRAINTS',false);
exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'REF_CONSTRAINTS',false); PL/SQL procedure successfully completed. exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'CONSTRAINTS',false); PL/SQL procedure successfully completed. SQL> exec DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false); PL/SQL procedure successfully completed. SQL>
SQL> select dbms_metadata.get_ddl('TABLE','TB2','TEST') from dual; DBMS_METADATA.GET_DDL('TABLE','TB2','TEST')
-------------------------------------------------------------------------------- CREATE TABLE "TEST"."TB2"
( "ID" NUMBER(*,0)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "USERS"
还能够对其它的一些信息做过滤,表格例如以下:
Table 87-22 SET_TRANSFORM_PARAM: Transform Parameters for the DDLTransform
Object Type |
Name |
Datatype |
Meaning |
All objects |
PRETTY |
BOOLEAN |
If TRUE, format the output with indentation and line feeds. Defaults toTRUE. |
All objects |
SQLTERMINATOR |
BOOLEAN |
If TRUE, append a SQL terminator (; or /) |
TABLE |
SEGMENT_ATTRIBUTES |
BOOLEAN |
If TRUE, include segment attributes clauses in the DDL. If FALSE, omit them. |
TABLE |
STORAGE |
BOOLEAN |
If TRUE, include storage clauses in the DDL. If FALSE, omit them. Defaults |
TABLE |
TABLESPACE |
BOOLEAN |
If TRUE, include tablespace clauses in the DDL. If FALSE, omit them. (Ignored |
TABLE |
CONSTRAINTS |
BOOLEAN |
If TRUE, include all non-referential table constraints in the DDL. If FALSE, |
TABLE |
REF_CONSTRAINTS |
BOOLEAN |
If TRUE, include all referential constraints (foreign keys) in the DDL. IfFALSE, |
TABLE |
CONSTRAINTS_AS_ALTER |
BOOLEAN |
If TRUE, include table constraints as separate ALTER TABLE (and, if necessary, CREATE |
TABLE |
OID |
BOOLEAN |
If TRUE, include the OID clause for object tables in the DDL. If FALSE, omit |
TABLE |
SIZE_BYTE_KEYWORD |
BOOLEAN |
If TRUE, include the BYTE keyword as part of the size specification ofCHAR and VARCHAR2 columns |
TABLE, INDEX |
PARTITIONING |
BOOLEAN |
If TRUE, include partitioning clauses in the DDL. If FALSE, omit them. Defaults |
INDEX, CONSTRAINT,ROLLBACK_SEGMENT,CLUSTER, TABLESPACE |
SEGMENT_ATTRIBUTES |
BOOLEAN |
If TRUE, include segment attributes clauses (physical attributes, storage attributes, tablespace, logging) in the DDL. If FALSE, |
INDEX, CONSTRAINT,ROLLBACK_SEGMENT, CLUSTER |
STORAGE |
BOOLEAN |
If TRUE, include storage clauses in the DDL. If FALSE, omit them. (Ignored |
INDEX, CONSTRAINT,ROLLBACK_SEGMENT, CLUSTER |
TABLESPACE |
BOOLEAN |
If TRUE, include tablespace clauses in the DDL. If FALSE, omit them. (Ignored |
TYPE |
SPECIFICATION |
BOOLEAN |
If TRUE, include the type specification in the DDL. If FALSE, omit it. Defaults |
TYPE |
BODY |
BOOLEAN |
If TRUE, include the type body in the DDL. If FALSE, omit it. Defaults toTRUE. |
TYPE |
OID |
BOOLEAN |
If TRUE, include the OID clause in the DDL. If FALSE, omit it. Defaults toFALSE. |
PACKAGE |
SPECIFICATION |
BOOLEAN |
If TRUE, include the package specification in the DDL. If FALSE, omit it. |
PACKAGE |
BODY |
BOOLEAN |
If TRUE, include the package body in the DDL. If FALSE, omit it. Defaults |
VIEW |
FORCE |
BOOLEAN |
If TRUE, use the FORCE keyword in the CREATE |
OUTLINE |
INSERT |
BOOLEAN |
If TRUE, include the INSERT statements into the OL$ dictionary tables that Note: This object type is being deprecated. |
All objects |
DEFAULT |
BOOLEAN |
Calling SET_TRANSFORM_PARAM with this parameter set to TRUE has the effect |
All objects |
INHERIT |
BOOLEAN |
If TRUE, inherits session-level parameters. Defaults to FALSE. If an application |
ROLE |
REVOKE_FROM |
Text |
The name of a user from whom the role must be revoked. If this is a non-null string and if the CREATE ROLE statement Note: When you issue a CREATE ROLE statement, Oracle may grant you the role. Defaults to null string. |
TABLESPACE |
REUSE |
BOOLEAN |
If TRUE, include the REUSE parameter for datafiles in a tablespace to indicate Defaults to FALSE. |
CLUSTER, INDEX,ROLLBACK_SEGMENT, TABLE,TABLESPACE |
PCTSPACE |
NUMBER |
A number representing the percentage by which space allocation for the object type is to be modified. The value is the number of one-hundreths of the current allocation. For example, 100 means 100%. If the object type is TABLESPACE, the following size values are affected: - in file specifications, the value of SIZE - MINIMUM EXTENT - EXTENT MANAGEMENT LOCAL UNIFORM SIZE For other object types, INITIAL and NEXT are affected. |
DBMS_METADATA中使用SESSION_TRANSFORM过滤不想获取的DDL的更多相关文章
- jmeter提取正则表达式中所有关联值-----我想获取所有的ID
[{ "ID": 1, "Name": "张三" }, { "ID": 2, "Name": &qu ...
- Mybatis 在 insert 之后想获取自增的主键 id
记录一次傻逼的问题, 自己把自己蠢哭:Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要 ...
- 微信小程序——picker通过value返回你想获取的值
关于微信小程序中的picker使用方法可以访问:picker-小程序 从它的官方文档中,可以看出它返回的value值是它range的下标: 在项目中,我们大多数时候传的值并不是需要这个下标,而是其他的 ...
- 如何在K3 WISE BOS集成开发工具中自定义字段过滤条件
1.结论 对于输入过滤条件后BOS报“列名不正确”的过滤条件,要在列名前增加x2标识 无效的过滤 FNumber ,,,,,) 正确的过滤 x2.FNumber ,,,,,) 2.完全可以不看的探索过 ...
- Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1
记录一次傻逼的问题, 自己把自己蠢哭:Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要 ...
- 代码中,使用__DATE__宏,获取程序编译时间,如何保证每次编译代码(非重新生成方式),都能更新__DATE__的值?
代码中,使用__DATE__宏,获取程序编译时间,如何保证每次编译代码(非重新生成方式),都能更新__DATE__的值? 解决:通过vs的预先生成命令中,添加批处理命令,删除对应的obj文件方式,强制 ...
- javascript中无法通过div.style.left获取值的问题
一.问题总结: 样式必须直接写在元素内部才能通过div.style.left直接获取属性值(也就是必须是内联样式才行),定义在css中的样式不能通过这种方式获取. 让元素移动到200停止 setTim ...
- Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)
Selenium 获取 JavaScript 返回值非常简单,只需要在 js 脚本中将需要返回的数据 return 就可以,然后通过方法返回 js 的执行结果,方法源码如下所示: /** * Get ...
- Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)
通过 JS 或 JQuery 获取到元素后,通过 offsetLeft.offsetTop.offsetWidth.offsetHeight 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参 ...
随机推荐
- 【四边形不等式】POJ1160[IOI2000]-Post Office
[题目大意] v个村庄p个邮局,邮局在村庄里,给出村庄的位置,求每个村庄到最近邮局距离之和的最小值. [思路] 四边形不等式,虽然我并不会证明:( dp[i][j]表示前i个村庄建j个邮局的最小值,w ...
- 80.Vigenère密码(模拟)
Vigenère密码(文件名vigenere.cpp vigenere.in vigenere.out) 题目描述 Description 16 世纪法国外交家Blaise de Vigen ...
- sqlserver -- 学习笔记(一)自定义函数(学习总结,备忘)
SQL Server自定义函数,以前只在书上看过,没有动手去敲一敲,今天刚好接触到,看了几篇博文学习了下.做好备忘很重要!! (@_@)Y Learn from:http://www.cnblogs. ...
- [转]Android网格视图(GridView)
GridView的一些属性: 1.android:numColumns=”auto_fit” //GridView的列数设置为自动,也可以设置成2.3.4…… 2.android:columnWi ...
- URAL 1992 CVS
CVS 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=1992 Description Yoda: Visit I will the c ...
- uva 6957 Hyacinth bfs
Hyacinth Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem/viewPro ...
- 让Firefox支持offsetX、offsetY
//计算光标相对于第一个定位的父元素的坐标 function coordinate(e){ var o = window.event || e, coord, coord_X, coord_Y; co ...
- BOOST Converter Analog/Digital Adjusted Output Voltage TPS61045 MAX1932
DIGITALLY ADJUSTABLE BOOST CONVERTER The TPS61045 is a high frequency boost converter with digitally ...
- [ring3反作弊篇] 基于EBP遍历调用栈及模块名
http://blog.csdn.net/wangningyu/article/details/44569803
- 【Hibernate步步为营】--hql查询小介
HQL 是指Hibernate Query Language,它是Hibernate的查询语言,拥有一套自己的查询机制,它的查询语句和SQL非常类似.在使用的时候可以非常快上手.HQL提供了基本上SQ ...