DBMS_METADATA中使用SESSION_TRANSFORM過濾不想擷取的DDL,dbmsmetadata

來源:互聯網
上載者:User

DBMS_METADATA中使用SESSION_TRANSFORM過濾不想擷取的DDL,dbmsmetadata

我們一般使用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 DEFAULT 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 DEFAULT 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 /) to each DDL statement. Defaults to FALSE.

TABLE

SEGMENT_ATTRIBUTES

BOOLEAN

If TRUE, include segment attributes clauses in the DDL. If FALSE, omit them. Defaults to TRUE.

TABLE

STORAGE

BOOLEAN

If TRUE, include storage clauses in the DDL. If FALSE, omit them. Defaults to TRUE. (Ignored if SEGMENT_ATTRIBUTES is FALSE.)

TABLE

TABLESPACE

BOOLEAN

If TRUE, include tablespace clauses in the DDL. If FALSE, omit them. (Ignored if SEGMENT_ATTRIBUTES is FALSE.) Defaults to TRUE.

TABLE

CONSTRAINTS

BOOLEAN

If TRUE, include all non-referential table constraints in the DDL. If FALSE, omit them. Defaults to TRUE.

TABLE

REF_CONSTRAINTS

BOOLEAN

If TRUE, include all referential constraints (foreign keys) in the DDL. IfFALSE, omit them. Defaults to TRUE.

TABLE

CONSTRAINTS_AS_ALTER

BOOLEAN

If TRUE, include table constraints as separate ALTER TABLE (and, if necessary, CREATE INDEX) statements. If FALSE, specify table constraints as part of the CREATE TABLE statement. Defaults to FALSE. Requires thatCONSTRAINTS be TRUE.

TABLE

OID

BOOLEAN

If TRUE, include the OID clause for object tables in the DDL. If FALSE, omit it. Defaults to FALSE.

TABLE

SIZE_BYTE_KEYWORD

BOOLEAN

If TRUE, include the BYTE keyword as part of the size specification ofCHAR and VARCHAR2 columns that use byte semantics. If FALSE, omit the keyword. Defaults to FALSE.

TABLE, INDEX

PARTITIONING

BOOLEAN

If TRUE, include partitioning clauses in the DDL. If FALSE, omit them. Defaults to TRUE.

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, omit them. Defaults to TRUE.

INDEX, CONSTRAINT,ROLLBACK_SEGMENT, CLUSTER

STORAGE

BOOLEAN

If TRUE, include storage clauses in the DDL. If FALSE, omit them. (Ignored if SEGMENT_ATTRIBUTES is FALSE.) Defaults to TRUE.

INDEX, CONSTRAINT,ROLLBACK_SEGMENT, CLUSTER

TABLESPACE

BOOLEAN

If TRUE, include tablespace clauses in the DDL. If FALSE, omit them. (Ignored if SEGMENT_ATTRIBUTES is FALSE.) Defaults to TRUE.

TYPE

SPECIFICATION

BOOLEAN

If TRUE, include the type specification in the DDL. If FALSE, omit it. Defaults to TRUE.

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. Defaults to TRUE.

PACKAGE

BODY

BOOLEAN

If TRUE, include the package body in the DDL. If FALSE, omit it. Defaults to TRUE.

VIEW

FORCE

BOOLEAN

If TRUE, use the FORCE keyword in the CREATE VIEW statement. If FALSE, do not use the FORCE keyword in the CREATE VIEW statement. Defaults toTRUE.

OUTLINE

INSERT

BOOLEAN

If TRUE, include the INSERT statements into the OL$ dictionary tables that will create the outline and its hints. If FALSE, omit a CREATE OUTLINEstatement. Defaults to FALSE.

Note: This object type is being deprecated.

All objects

DEFAULT

BOOLEAN

Calling SET_TRANSFORM_PARAM with this parameter set to TRUE has the effect of resetting all parameters for the transform to their default values. Setting this FALSE has no effect. There is no default.

All objects

INHERIT

BOOLEAN

If TRUE, inherits session-level parameters. Defaults to FALSE. If an application calls ADD_TRANSFORM to add the DDL transform, then by default the only transform parameters that apply are those explicitly set for that transform handle. This has no effect if the transform handle is the session transform handle.

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 grants you the role, aREVOKE statement is included in the DDL after the CREATE ROLEstatement.

Note: When you issue a CREATE ROLE statement, Oracle may grant you the role. You can use this transform parameter to undo the grant.

Defaults to null string.

TABLESPACE

REUSE

BOOLEAN

If TRUE, include the REUSE parameter for datafiles in a tablespace to indicate that existing files can be reused. If FALSE, omit the REUSEparameter.

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.

 



select username from dba_users; select dbms_metadataget_ddl('USER','USERNAME') from dual;

select dbms_metadata.get_ddl('USER',U.USERNAME) from dba_users U
 
oracle 11g 怎給沒資料庫中沒有記錄的空表分配段

使用expdp代替exp匯出
給這些沒有分配的表插入一條資料然後刪除,就可以分配空間了
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.