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 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参 ...
随机推荐
- 启动Tensorboard时发生错误:class BeholderHook(tf.estimator.SessionRunHook): AttributeError: module 'tensorflow.python.estimator.estimator_lib' has no attribute 'SessionRunHook'
报错:class BeholderHook(tf.estimator.SessionRunHook):AttributeError: module 'tensorflow.python.estimat ...
- bzoj 3437: 小P的牧场 -- 斜率优化
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MB Description 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号), ...
- 【BZOJ-2734】集合选数 状压DP (思路题)
2734: [HNOI2012]集合选数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1070 Solved: 623[Submit][Statu ...
- Educational Codeforces Round 11 E. Different Subsets For All Tuples 动态规划
E. Different Subsets For All Tuples 题目连接: http://www.codeforces.com/contest/660/problem/E Descriptio ...
- VK Cup 2016 - Qualification Round 1 (Russian-Speaking Only, for VK Cup teams) B. Chat Order 水题
B. Chat Order 题目连接: http://www.codeforces.com/contest/637/problem/B Description Polycarp is a big lo ...
- Ubantu14.04下编译OpenCV3.0.0以及读取图片例子
以前一直使用opencv 2.x的版本,现在3.0的已经发布成正式版了,尝试在Linux下安装. 收集了一篇不错的经验教程: Ubuntu14.04下安装OpenCV3.0经验. 编译的过程大概需要3 ...
- PHP 基础函数(二)数组的内部指针
current($arr); 返回数组中的当前单元pos($arr); 返回数组中的当前单元key($arr); 返回数组中当前单元的键名prev($arr); 将数组中的内部指针倒回一位ne ...
- slf4j使用
pom jar包引用<!-- Logging --> <dependency> <groupId>ch.qos.logback</groupId> &l ...
- 1036: [ZJOI2008]树的统计Count (树链剖分)
1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3401 Solved: 1418[Submit] ...
- JavaScript在IE6下超级链接window.location.href不跳转的bug 及 解决方案
今天遇到个很诡异的问题,就是<a href="javascript:void(0);" onclick="window.location.href=url" ...