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 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参 ...
随机推荐
- bzoj 4397: [Usaco2015 dec]Breed Counting -- 前缀和
4397: [Usaco2015 dec]Breed Counting Time Limit: 10 Sec Memory Limit: 128 MB Description Farmer John ...
- Codeforces Round #245 (Div. 2) B. Balls Game 并查集
B. Balls Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/430/problem ...
- Linux下添加静态路由表设置网关出现SIOCADDRT: Network is unreachable的问题分析
场景: # route add default gw 192.168.4.1 route: SIOCADDRT: Network is unreachable 解释: 1.先ping一下网关,但是pi ...
- AR(Average Recall, 平均查全率), ANMRR(Average Normalized Modified Retrieval Rate, 平均归一化检索秩)
AR(Average Recall, 平均查全率), ANMRR(Average Normalized Modified Retrieval Rate, 平均归一化检索秩)
- HDU 4686 Arc of Dream (2013多校9 1001 题,矩阵)
Arc of Dream Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- JAVA EE 博客实例
http://www.cnblogs.com/hoojo/category/276244.html
- innodb_buffer_pool_size=30G
Starting program: /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/bin/mysqld-debug --user=mysql --data ...
- End of Life check fails with NullPointerException
Checks if the running version of JIRA is approaching, or has reached End of Life. Details Type: Bug ...
- Android:手把手带你深入剖析 Retrofit 2.0 源码
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜 ...
- linux查找超过一定时间的文件,并批量删除
1.find . -maxdepth 4 -name "*-*" -mtime 3 -maxdepth的值决定是否对下面的子目录进行递归查找 -mtime 3表示查找刚好3天的: ...