Oracle中如何導(dǎo)出存儲(chǔ)過(guò)程、函數(shù)、包和觸發(fā)器的定義語(yǔ)句?如何導(dǎo)出表的結(jié)構(gòu)?如何導(dǎo)出索引的創(chuàng)建語(yǔ)句?

Oracle中如何導(dǎo)出存儲(chǔ)過(guò)程、函數(shù)、包和觸發(fā)器的定義語(yǔ)句?如何導(dǎo)出表的結(jié)構(gòu)?如何導(dǎo)出索引的創(chuàng)建語(yǔ)句?

QQ群里有人問(wèn):如何導(dǎo)出一個(gè)用戶下的存儲(chǔ)過(guò)程?

? 麥苗答:方法有多種,可以使用DBMS_METADATA.GET_DDL包。

使用PL/SQL DEVELOPER工具

-- 下面的SQL語(yǔ)句,如果報(bào)錯(cuò):ORA-22835: 緩沖區(qū)對(duì)于 CLOB 到 CHAR 轉(zhuǎn)換或 BLOB 到 RAW 轉(zhuǎn)換而言太小 (實(shí)際: 4994, 最大: 4000),那么去掉TO_CAHR

SELECT TO_CHAR(DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME)) ||CHR(10)||'/'

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'PROCEDURE'

?;


然后將結(jié)果拷貝到Excel中,

打開Excel,復(fù)制內(nèi)容到plsql developer里邊,注意粘貼的時(shí)候使用右鍵的“Past from host Language”,否則粘貼后的代碼含有雙引號(hào):

? 運(yùn)行這些腳本腳本即可:

使用SQL*Plus

使用如下的腳本即可導(dǎo)出某個(gè)用戶下的存儲(chǔ)過(guò)程代碼到/tmp/a.sql文件中:

SET PAGESIZE 0

SET TRIMSPOOL ON

SET LINESIZE 10000

SET LONG 90000

SET FEEDBACK OFF

SET FEED OFF;

SET ECHO OFF

spool /tmp/a.sql

SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME)||CHR(10)||'/'

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'PROCEDURE';?

spool OFF

打開文件后,簡(jiǎn)單處理一下即可。

總體來(lái)說(shuō)有兩種方式來(lái)獲取,第一,利用系統(tǒng)包DBMS_METADATA包中的GET_DDL函數(shù)來(lái)獲取,第二,利用exp或expdp來(lái)獲取。

下面來(lái)看第一種方式,如何利用系統(tǒng)包DBMS_METADATA包中的GET_DDL函數(shù)來(lái)獲取對(duì)象的定義語(yǔ)句。下面是該函數(shù)的入?yún)⒑统鰠ⅲ?/p>

SQL> DESC DBMS_METADATA.GET_DDL

PARAMETER?? TYPE???? MODE DEFAULT?

----------- -------- ---- --------

(RESULT)??? CLOB??????????????????

OBJECT_TYPE VARCHAR2 IN???????????

NAME??????? VARCHAR2 IN???????????

SCHEMA????? VARCHAR2 IN?? Y???????

VERSION???? VARCHAR2 IN?? Y???????

MODEL?????? VARCHAR2 IN?? Y???????

TRANSFORM?? VARCHAR2 IN?? Y???????

其詳細(xì)參數(shù)如下:

l?OBJECT_TYPE?需要返回原數(shù)據(jù)的DDL語(yǔ)句的對(duì)象類型

l?NAME?對(duì)象名稱

l?SCHEMA?對(duì)象所在的SCHEMA,默認(rèn)為當(dāng)前用戶所在所SCHEMA

l?VERSION?對(duì)象原數(shù)據(jù)的版本

l?MODEL?原數(shù)據(jù)的類型默認(rèn)為ORACLE

l?TRANSFORM?默認(rèn)值為DDL

l?RETURNS?對(duì)象的原數(shù)據(jù)默認(rèn)以CLOB類型返回

一般情況下,只需要給出OBJECT_TYPE、NAME和SCHEMA3個(gè)參數(shù)即可。

n?查看創(chuàng)建表SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;

SELECT DBMS_METADATA.GET_DDL('TABLE',U.TABLE_NAME) FROM USER_TABLES U;

n?查看創(chuàng)建索引的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('INDEX','PK_DEPT','SCOTT') FROM DUAL;

SELECT DBMS_METADATA.GET_DDL('INDEX',U.INDEX_NAME) FROM USER_INDEXES U;

n?查看創(chuàng)建主鍵的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','EMP_PK') FROM DUAL;

n?查看創(chuàng)建外鍵的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('REF_CONSTRAINT','EMP_FK_DEPT') FROM DUAL;

n?查看創(chuàng)建視圖(VIEW)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('VIEW', 'MY_TABLES','SCOTT') FROM DUAL;

SELECT DBMS_METADATA.GET_DDL('VIEW', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'VIEW';

SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME=UPPER('&VIEW_NAME');

n?查看創(chuàng)建存儲(chǔ)過(guò)程(PROCEDURE)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'PROCEDURE';

n?查看創(chuàng)建觸發(fā)器(TRIGGER)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('TRIGGER', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'TRIGGER';

n?查看創(chuàng)建函數(shù)(FUNCTION)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('FUNCTION', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'FUNCTION';

n?查看創(chuàng)建包(PACKAGE)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('PACKAGE', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'PACKAGE';

n?查看創(chuàng)建序列(SEQUENCE)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('SEQUENCE', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'SEQUENCE';

n?查看創(chuàng)建同義詞(SYNONYM)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('SYNONYM', U.OBJECT_NAME)

? FROM USER_OBJECTS U

?WHERE OBJECT_TYPE = 'SYNONYM';

n?查看創(chuàng)建表空間(TABLESPACE)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('TABLESPACE', U.TABLESPACE_NAME)

? FROM USER_TABLESPACES U;

n?查看創(chuàng)建角色(ROLE)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('ROLE', U.ROLE) FROM DBA_ROLES U;

n?查看創(chuàng)建用戶(USER)的SQL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('USER','SYS') FROM DUAL;

n?得到某個(gè)SCHEDULER JOB的創(chuàng)建語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL('PROCOBJ', D.JOB_NAME, D.OWNER)

? FROM DBA_SCHEDULER_JOBS D

?WHERE D.JOB_TYPE = 'STORED_PROCEDURE'

?? AND D.STATE = 'SCHEDULED'

?? AND D.SCHEDULE_NAME IS NULL;

n?得到一個(gè)用戶下的所有表、索引、存儲(chǔ)過(guò)程、函數(shù)的DDL語(yǔ)句:

SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME)

FROM?? USER_OBJECTS U

WHERE? U.OBJECT_TYPE IN ('TABLE', 'INDEX', 'PROCEDURE', 'FUNCTION');

如果想去掉表的存儲(chǔ)參數(shù)(例如,INITIAL、NEXT、FREELISTS等參數(shù)),那么可以使用DBMS_METADATA包中的函數(shù)SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE)來(lái)完成,代碼如下所示:

SYS@lhrdb> SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT')

--------------------------------------------------------------------------------

? CREATE TABLE "SCOTT"."DEPT"

?? (??? "DEPTNO" NUMBER(2,0),

??????? "DNAME" VARCHAR2(14),

??????? "LOC" VARCHAR2(13),

???????? CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")

? USING INDEX 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 "USERS"? 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"

SYS@lhrdb>?EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',FALSE);

PL/SQL procedure successfully completed.

SYS@lhrdb> SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT')

--------------------------------------------------------------------------------

? CREATE TABLE "SCOTT"."DEPT"

?? (??? "DEPTNO" NUMBER(2,0),

??????? "DNAME" VARCHAR2(14),

??????? "LOC" VARCHAR2(13),

???????? CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")

? USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

? TABLESPACE "USERS"? ENABLE

?? ) SEGMENT CREATION IMMEDIATE

? PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255

?NOCOMPRESS LOGGING

? TABLESPACE "USERS"

使用DBMS_METADATA.GET_DDL需要注意以下問(wèn)題:

(1)DBMS_METADATA.GET_DDL()包內(nèi)的參數(shù)都要大寫,否則會(huì)報(bào)ORA-31600: invalid input value table for parameter OBJECT_TYPE in function GET_DDL的錯(cuò)誤。

(2)是否查的當(dāng)前用戶的DDL語(yǔ)句,若不是則需要加上對(duì)象的屬主信息即SCHEMA參數(shù)。

(3)若在SQL*Plus中顯示不全,則需要set long 9999。

(4)對(duì)于DBMS_METADATA.GET_DDL包,可以在PLSQL Developer工具中運(yùn)行,也可以在SQL*Plus中運(yùn)行。

如果要導(dǎo)出SCOTT用戶下的所有定義,那么在SQL*Plus中代碼如下所示:

SET PAGESIZE 0

SET TRIMSPOOL ON

SET LINESIZE 10000

SET LONG 90000

SET FEEDBACK OFF

SET FEED OFF;

SET ECHO OFF

SPOOL /tmp/schema_scott.sql

SELECT CASE

???????? WHEN U.OBJECT_TYPE IN

('PROCEDURE', 'FUNCTION'?,?'PACKAGE', 'TRIGGER') THEN

????????? DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME, U.OWNER) ||

????????? CHR(10) || '/'

???????? ELSE

????????? DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME, U.OWNER)||

????????? CHR(10) || ';'

?????? END AS SCOTT_DDL

? FROM DBA_OBJECTS U

?WHERE U.OBJECT_TYPE IN

('TABLE', 'INDEX', 'PROCEDURE', 'FUNCTION'?,?'PACKAGE', 'TRIGGER')

AND U.OWNER='SCOTT';

SPOOL OFF;

則可以導(dǎo)出SCOTT用戶下所有的DDL語(yǔ)句到/tmp/schema_scott.sql文件中。

如果在PLSQL Developer工具中運(yùn)行,那么可以單獨(dú)運(yùn)行如下的SQL語(yǔ)句:

SELECT CASE

???????? WHEN U.OBJECT_TYPE IN

('PROCEDURE', 'FUNCTION'?,?'PACKAGE', 'TRIGGER') THEN

????????? DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME, U.OWNER) ||

????????? CHR(10) || '/'

???????? ELSE

????????? DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME, U.OWNER)||

????????? CHR(10) || ';'

?????? END AS SCOTT_DDL

? FROM DBA_OBJECTS U

?WHERE U.OBJECT_TYPE IN

('TABLE', 'INDEX', 'PROCEDURE', 'FUNCTION'?,?'PACKAGE', 'TRIGGER')

AND U.OWNER='SCOTT';

然后選擇整列,右鍵選擇“Copy to Excel”,就可以將數(shù)據(jù)導(dǎo)出到Excel文件中,接著,將Excel中的數(shù)據(jù)復(fù)制到PLSQL Developer工具的“SQL Window”中皆可。需要注意的是,最后復(fù)制到“SQL Window”中的時(shí)候,需要選擇右鍵的“Past from host Language”,否則粘貼的代碼含有雙引號(hào),需要做特殊處理,比較麻煩。

?可以使用如下的SQL腳本生成某個(gè)用戶下的所有對(duì)象的DDL語(yǔ)句:

sqlplus<

set long 100000

set head off

set echo off

set pagesize 0

set verify off

set feedback off

spool schema.out


select dbms_metadata.get_ddl(object_type, object_name, owner)

from

(

??? --Convert DBA_OBJECTS.OBJECT_TYPE to DBMS_METADATA object type:

??? select

??????? owner,

??????? --Java object names may need to be converted with DBMS_JAVA.LONGNAME.

??????? --That code is not included since many database don't have Java installed.

??????? object_name,

??????? decode(object_type,

??????????? 'DATABASE LINK',????? 'DB_LINK',

??????????? 'JOB',??????????????? 'PROCOBJ',

??????????? 'RULE SET',?????????? 'PROCOBJ',

??????????? 'RULE',?????????????? 'PROCOBJ',

??????????? 'EVALUATION CONTEXT', 'PROCOBJ',

??????????? 'PACKAGE',??????????? 'PACKAGE_SPEC',

??????????? 'PACKAGE BODY',?????? 'PACKAGE_BODY',

??????????? 'TYPE',?????????????? 'TYPE_SPEC',

??????????? 'TYPE BODY',????????? 'TYPE_BODY',

??????????? 'MATERIALIZED VIEW',? 'MATERIALIZED_VIEW',

??????????? 'QUEUE',????????????? 'AQ_QUEUE',

??????????? 'JAVA CLASS',???????? 'JAVA_CLASS',

??????????? 'JAVA TYPE',????????? 'JAVA_TYPE',

??????????? 'JAVA SOURCE',????? ??'JAVA_SOURCE',

??????????? 'JAVA RESOURCE',????? 'JAVA_RESOURCE',

??????????? object_type

??????? ) object_type

??? from dba_objects

??? where owner in ('LHR')

??????? --These objects are included with other object types.

??????? and object_type not in ('INDEX PARTITION','INDEX SUBPARTITION',

?????????? 'LOB','LOB PARTITION','LOB SUBPARTITION','TABLE PARTITION','TABLE SUBPARTITION','PROGRAM')

??????? --Ignore system-generated types that support collection processing.

??????? and not (object_type = 'TYPE' and object_name like 'SYS_PLSQL_%')

??????? --Exclude nested tables, their DDL is part of their parent table.

??????? and (owner, object_name) not in (select owner, table_name from dba_nested_tables)

??????? --Exlclude overflow segments, their DDL is part of their parent table.

??????? and (owner, object_name) not in (select owner, table_name from dba_tables where iot_type = 'IOT_OVERFLOW')

)

order by owner, object_type, object_name;



spool off

quit

EOF


cat schema.out|sed 's/OWNER1/MYOWNER/g'>schema.out.change.sql

下面介紹第二種導(dǎo)出元數(shù)據(jù)的方法,就是采用exp或expdp命令。數(shù)據(jù)泵工具(impdp)提供了SQLFILE的命令行選項(xiàng),只獲取DDL語(yǔ)句,并未真正地執(zhí)行數(shù)據(jù)導(dǎo)入。另外,若單純?yōu)榱藢?dǎo)出DDL語(yǔ)句則可以在使用expdp導(dǎo)出的時(shí)候使用CONTENT=METADATA_ONLY和EXCLUDE=STATISTICS選項(xiàng),這樣導(dǎo)出的DMP文件比較小。如下所示:

expdp \'/ AS SYSDBA\' DIRECTORY=DATA_PUMP_DIR DUMPFILE=lhrsql20161215.dmp LOGFILE=lhrsql20161215.log CONTENT=METADATA_ONLY SCHEMAS=SCOTT? EXCLUDE=STATISTICS

impdp? \'/ AS SYSDBA\'? DIRECTORY=DATA_PUMP_DIR DUMPFILE=lhrsql20161215.dmp? LOGFILE=imp_exptest.log SQLFILE=expddl_lhr.sql

查看expddl_lhr.sql文件即可獲取DDL語(yǔ)句。整個(gè)示例如下所示:

[ZFZHLHRDB1:oracle]:/oracle>expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT? dumpfile=exptest_sql.dmp logfile=exp_exptest.dmp


Export: Release 11.2.0.4.0 - Production on Wed Aug 3 15:14:55 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_SCHEMA_01":? "/******** AS SYSDBA" directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=exptest_sql.dmp logfile=exp_exptest.dmp

Estimate in progress using BLOCKS method...

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 256 KB

Processing object type SCHEMA_EXPORT/USER

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . exported "SCOTT"."DEPT"????????????????????????????? 5.929 KB?????? 4 rows

. . exported "SCOTT"."EMP"?????????????????????????????? 8.562 KB????? 14 rows

. . exported "SCOTT"."SALGRADE"????????????????????????? 5.859 KB?????? 5 rows

. . exported "SCOTT"."TEST"????????????????????????????? 5.007 KB?????? 1 rows

. . exported "SCOTT"."BONUS"???????????????????????????????? 0 KB?????? 0 rows

Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:

? /oracle/app/oracle/admin/lhrdb/dpdump/exptest_sql.dmp

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Wed Aug 3 15:15:16 2016 elapsed 0 00:00:20


[ZFZHLHRDB1:oracle]:/oracle>impdp? \'/ AS SYSDBA\'? directory=DATA_PUMP_DIR dumpfile=exptest_sql.dmp? logfile=imp_exptest.log sqlfile=exptest.sql


Import: Release 11.2.0.4.0 - Production on Wed Aug 3 15:16:06 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

Master table "SYS"."SYS_SQL_FILE_FULL_01" successfully loaded/unloaded

Starting "SYS"."SYS_SQL_FILE_FULL_01":? "/******** AS SYSDBA" directory=DATA_PUMP_DIR dumpfile=exptest_sql.dmp logfile=imp_exptest.log sqlfile=exptest.sql

Processing object type SCHEMA_EXPORT/USER

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Job "SYS"."SYS_SQL_FILE_FULL_01" successfully completed at Wed Aug 3 15:16:09 2016 elapsed 0 00:00:02


[ZFZHLHRDB1:oracle]:/oracle>cd /oracle/app/oracle/admin/lhrdb/dpdump/

[ZFZHLHRDB1:oracle]:/oracle/app/oracle/admin/lhrdb/dpdump>more exptest.sql

-- CONNECT SYS

ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';

ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';

ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';

ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';

ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';

ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';

-- new object type path: SCHEMA_EXPORT/USER

-- CONNECT SYSTEM

?CREATE USER "SCOTT" IDENTIFIED BY VALUES 'S:268AB71B15071D81F19C6FC5041FA8F8E49397470FFE05458B8C90D9E7F8;F894844C34402B67'

????? DEFAULT TABLESPACE "USERS"

????? TEMPORARY TABLESPACE "TEMP"

????? PASSWORD EXPIRE

????? ACCOUNT LOCK;

-- new object type path: SCHEMA_EXPORT/SYSTEM_GRANT

GRANT UNLIMITED TABLESPACE TO "SCOTT";

-- new object type path: SCHEMA_EXPORT/ROLE_GRANT

?GRANT "CONNECT" TO "SCOTT";

?GRANT "RESOURCE" TO "SCOTT";

-- new object type path: SCHEMA_EXPORT/DEFAULT_ROLE

?ALTER USER "SCOTT" DEFAULT ROLE ALL;

-- new object type path: SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

-- CONNECT SCOTT


BEGIN

sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'LHRDB', inst_scn=>'4225469');

COMMIT;

END;

/

-- new object type path: SCHEMA_EXPORT/TABLE/TABLE

-- CONNECT SYS

CREATE TABLE "SCOTT"."DEPT"

?? (??? "DEPTNO" NUMBER(2,0),

??????? "DNAME" VARCHAR2(14 BYTE),

??????? "LOC" VARCHAR2(13 BYTE)

?? ) 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" ;

CREATE TABLE "SCOTT"."EMP"

?? (??? "EMPNO" NUMBER(4,0),

??????? "ENAME" VARCHAR2(10 BYTE),

??????? "JOB" VARCHAR2(9 BYTE),

??????? "MGR" NUMBER(4,0),

??????? "HIREDATE" DATE,

??????? "SAL" NUMBER(7,2),

??????? "COMM" NUMBER(7,2),

??????? "DEPTNO" NUMBER(2,0)

?? ) 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" ;

CREATE TABLE "SCOTT"."BONUS"

?? (??? "ENAME" VARCHAR2(10 BYTE),

??????? "JOB" VARCHAR2(9 BYTE),

??????? "SAL" NUMBER,

??????? "COMM" NUMBER

?? ) SEGMENT CREATION DEFERRED

? PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255

?NOCOMPRESS LOGGING

? TABLESPACE "USERS" ;

CREATE TABLE "SCOTT"."SALGRADE"

?? (??? "GRADE" NUMBER,

??????? "LOSAL" NUMBER,

??????? "HISAL" NUMBER

?? ) 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" ;

CREATE TABLE "SCOTT"."TEST"

?? (??? "DUMMY" VARCHAR2(1 BYTE)

?? ) 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" ;

-- new object type path: SCHEMA_EXPORT/TABLE/INDEX/INDEX

-- CONNECT SCOTT

CREATE UNIQUE INDEX "SCOTT"."PK_DEPT" ON "SCOTT"."DEPT" ("DEPTNO")

? 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" PARALLEL 1 ;


? ALTER INDEX "SCOTT"."PK_DEPT" NOPARALLEL;

CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMPNO")

? 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" PARALLEL 1 ;


? ALTER INDEX "SCOTT"."PK_EMP" NOPARALLEL;

-- new object type path: SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

-- CONNECT SYS

ALTER TABLE "SCOTT"."DEPT" ADD CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")

? USING INDEX "SCOTT"."PK_DEPT"? ENABLE;

ALTER TABLE "SCOTT"."EMP" ADD CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")

? USING INDEX "SCOTT"."PK_EMP"? ENABLE;

-- new object type path: SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

DECLARE I_N VARCHAR2(60);

? I_O VARCHAR2(60);

? NV VARCHAR2(1);

? c DBMS_METADATA.T_VAR_COLL;

? df varchar2(21) := 'YYYY-MM-DD:HH24:MI:SS';

?stmt varchar2(300) := ' INSERT INTO "SYS"."IMPDP_STATS" (type,version,flags,c1,c2,c3,c5,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,d1,cl1) VALUES (''I'',6,:1,:2,:3,:4,:5,

:6,:7,:8,:9,:10,:11,:12,:13,NULL,:14,:15,NULL,:16,:17)';

BEGIN

? DELETE FROM "SYS"."IMPDP_STATS";

? i_n := 'PK_DEPT';

? i_o := 'SCOTT';

? EXECUTE IMMEDIATE stmt USING 2,I_N,NV,NV,I_O,4,1,4,1,1,1,0,4,NV,NV,TO_DATE('2016-07-07 22:00:11',df),NV;


? DBMS_STATS.IMPORT_INDEX_STATS('"' || i_o || '"','"' || i_n || '"',NULL,'"IMPDP_STATS"',NULL,'"SYS"');

? DELETE FROM "SYS"."IMPDP_STATS";

END;

/

《《《《。。。。。。。。篇幅原因,有省略,剩下的都是統(tǒng)計(jì)信息,生成sqlfile的時(shí)候也可以不用生成。。。。。。。。》》》》

imp工具使用SHOW=Y LOG=GET_DDL.sql的方式,可以看到清晰的DDL腳本,同時(shí)也不會(huì)真正的執(zhí)行數(shù)據(jù)導(dǎo)入。另外,若單純?yōu)榱藢?dǎo)出DDL語(yǔ)句則可以在使用exp導(dǎo)出的時(shí)候使用ROWS=N選項(xiàng),這樣導(dǎo)出的DMP文件比較小。如下所示:

exp? \'/ AS SYSDBA\'? TABLES=SCOTT.EMP? FILE=/tmp/exp_ddl_lhr_01.dmp? LOG=/tmp/exp_table.log? BUFFER=41943040 ROWS=N COMPRESS=N

imp \'/ AS SYSDBA\' FILE=/tmp/exp_ddl_lhr_01.dmp SHOW=Y LOG=/tmp/get_ddl.sql BUFFER=20480000? FULL=Y

查看get_ddl.sql文件即可獲取DDL語(yǔ)句。不過(guò)對(duì)于exp生成的DDL語(yǔ)句不能直接使用,需要使用SHELL腳本做相應(yīng)的處理后才能使用。整個(gè)示例如下所示:

[ZFZHLHRDB1:oracle]:/oracle>exp? \'/ AS SYSDBA\'? tables=scott.emp? file=/tmp/exp_ddl_lhr_01.dmp? log=/tmp/exp_table.log? buffer=41943040 rows=n compress=n


Export: Release 11.2.0.4.0 - Production on Tue Aug 2 15:42:11 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved.



Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Tes

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

Note: table data (rows) will not be exported


About to export specified tables via Conventional Path ...

Current user changed to SCOTT

. . exporting table??????????????????????????? EMP

Export terminated successfully without warnings.

[ZFZHLHRDB1:oracle]:/oracle>imp \'/ AS SYSDBA\' file=/tmp/exp_ddl_lhr_01.dmp show=y log=/tmp/get_ddl.sql buffer=20480000? full=y


Import: Release 11.2.0.4.0 - Production on Tue Aug 2 15:42:44 2016


Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved.



Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Tes


Export file created by EXPORT:V11.02.00 via conventional path

import done in ZHS16GBK character set and AL16UTF16 NCHAR character set

. importing SYS's objects into SYS

. importing SCOTT's objects into SCOTT

?"ALTER SESSION SET CURRENT_SCHEMA= "SCOTT""

?"CREATE TABLE "EMP" ("EMPNO" NUMBER(4, 0), "ENAME" VARCHAR2(10), "JOB" VARCH"

?"AR2(9), "MGR" NUMBER(4, 0), "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NUM"

?"BER(7, 2), "DEPTNO" NUMBER(2, 0))? PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRAN"

?"S 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST "

?"GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"

?"CREATE UNIQUE INDEX "PK_EMP" ON "EMP" ("EMPNO" )? PCTFREE 10 INITRANS 2 MAX"

?"TRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREEL"

?"IST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING"

?"ALTER SESSION SET CURRENT_SCHEMA= "SCOTT""

?"ALTER TABLE "EMP" ADD? CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO") USING INDE"

?"X PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MIN"

?"EXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "US"

?"ERS" LOGGING ENABLE "

?"ALTER TABLE "EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO") REFEREN"

?"CES "DEPT" ("DEPTNO") ENABLE NOVALIDATE"

?"ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO""

Import terminated successfully without warnings.

[ZFZHLHRDB1:oracle]:/oracle>

由于格式比較混亂,直接運(yùn)行會(huì)報(bào)錯(cuò),建榮的書中給了一段代碼來(lái)格式化:

[ZFZHLHRDB1:oracle]:/tmp>more /tmp/get_ddl.sql


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Tes


Export file created by EXPORT:V11.02.00 via conventional path

import done in ZHS16GBK character set and AL16UTF16 NCHAR character set

. importing SYS's objects into SYS

. importing SCOTT's objects into SCOTT

?"ALTER SESSION SET CURRENT_SCHEMA= "SCOTT""

?"CREATE TABLE "EMP" ("EMPNO" NUMBER(4, 0), "ENAME" VARCHAR2(10), "JOB" VARCH"

?"AR2(9), "MGR" NUMBER(4, 0), "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NUM"

?"BER(7, 2), "DEPTNO" NUMBER(2, 0))? PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRAN"

?"S 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST "

?"GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS"

?"CREATE UNIQUE INDEX "PK_EMP" ON "EMP" ("EMPNO" )? PCTFREE 10 INITRANS 2 MAX"

?"TRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREEL"

?"IST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING"

?"ALTER SESSION SET CURRENT_SCHEMA= "SCOTT""

?"ALTER TABLE "EMP" ADD? CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO") USING INDE"

?"X PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MIN"

?"EXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "US"

?"ERS" LOGGING ENABLE "

?"ALTER TABLE "EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO") REFEREN"

?"CES "DEPT" ("DEPTNO") ENABLE NOVALIDATE"

?"ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO""

Import terminated successfully without warnings.

[ZFZHLHRDB1:oracle]:/tmp>more /tmp/gettabddl.sh

awk '

? / \"BEGIN /?? { N=1; }

? / \"CREATE /?? { N=1; }

? / \"CREATE INDEX/?? { N=1; }

? / \"CREATE UNIQUE INDEX/? { N=1; }

? / \"ALTER /?? { N=1; }

? / \" ALTER /?? { N=1; }

? / \"ANALYZE /?? { N=1; }

? / \"GRANT /??? { N=1; }

? / \"COMMENT /?? { N=1; }

? / \"AUDIT /???? { N=1; }

? N==1 { printf "\n/\n"; N++ }

? /\"$/ {

??? if (N==0) next;

??? s=index( $0, "\"" );

??? ln0=length( $0 )

??? if ( s!=0 ) {

????? lcnt++

????? if ( lcnt >= 30 ) {

??????? ln=substr( $0,s+1,length( substr($0,s+1))-1)

??????? t=index( ln, ")," )

??????? if ( t==0 ) { t=index( ln, ", " ) }

??????? if ( t==0 ) { t=index( ln, ") " ) }

??????? if ( t > 0 ) {

????????? printf "%s\n%s",substr( ln,1,t+1), substr(ln, t+2)

????????? lcnt=0

??????? }

??????? else {

????????? printf "%s", ln

????????? if ( ln0 < 78 ) { printf "\n" ; lcnt=0 }

??????? }

????? }

????? else {

??????? printf "%s",substr( $0,s+1,length( substr($0,s+1))-1 )

??????? if ( ln0 < 78 ) { printf "\n" ; lcnt=0 }

????? }

??? }

? }

? END { printf "\n/\n"}

' $* |sed '1,2d; /^$/ d;

s/STORAGE *(INI/~??? STORAGE (INI/g;

s/, "/,~??? "/g;

s/ (\"/~?? &/g;

s/PCT[FI]/~??? &/g;

s/[( ]PARTITION /~&/g;

s/) TABLESPACE/)~??? TABLESPACE/g;

s/?? , / ,~/g;

s/ DATAFILE? /&~/' | tr "~" "\n"

[ZFZHLHRDB1:oracle]:/tmp>

[ZFZHLHRDB1:oracle]:/tmp>ksh /tmp/gettabddl.sh? /tmp/get_ddl.sql > /tmp/gen_tabddl.sql

[ZFZHLHRDB1:oracle]:/tmp>more /tmp/gen_tabddl.sql

ALTER SESSION SET CURRENT_SCHEMA= "SCOTT"

/

CREATE TABLE "EMP"

??? ("EMPNO" NUMBER(4, 0),

??? "ENAME" VARCHAR2(10),

??? "JOB" VARCHAR2(9),

??? "MGR" NUMBER(4, 0),

??? "HIREDATE" DATE,

??? "SAL" NUMBER(7, 2),

??? "COMM" NUMBER(7, 2),

??? "DEPTNO" NUMBER(2, 0))?

??? PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255

??? STORAGE (INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

??? TABLESPACE "USERS" LOGGING NOCOMPRESS

/

CREATE UNIQUE INDEX "PK_EMP" ON "EMP"

??? ("EMPNO" )?

??? PCTFREE 10 INITRANS 2 MAXTRANS 255

??? STORAGE (INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

??? TABLESPACE "USERS" LOGGING

/

ALTER SESSION SET CURRENT_SCHEMA= "SCOTT"

/

ALTER TABLE "EMP" ADD? CONSTRAINT "PK_EMP" PRIMARY KEY

??? ("EMPNO") USING INDEX

??? PCTFREE 10 INITRANS 2 MAXTRANS 255

??? STORAGE (INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

??? TABLESPACE "USERS" LOGGING ENABLE

/

ALTER TABLE "EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY

??? ("DEPTNO") REFERENCES "DEPT"

??? ("DEPTNO") ENABLE NOVALIDATE

/

ALTER TABLE "EMP" ENABLE CONSTRAINT "FK_DEPTNO"

/

這樣運(yùn)行起來(lái)就方便多了。

另外,使用imp工具的indexfile選項(xiàng)也可以把dmp文件中的表和索引的創(chuàng)建語(yǔ)句導(dǎo)出而不導(dǎo)入任何對(duì)象,命令如下:

imp userid/userid@service_name file=/tmp/exp_ddl_lhr_01.dmp FULL=Y indexfile=/tmp/get_ti_ddl.sql rows=n

示例如下所示:

[oracle@rhel6lhr tmp]$ exp? \'/ AS SYSDBA\'? TABLES=SCOTT.EMP? FILE=/tmp/exp_ddl_lhr_01.dmp? LOG=/tmp/exp_table.log? BUFFER=41943040 ROWS=N COMPRESS=N


Export: Release 11.2.0.3.0 - Production on Wed May 3 21:36:47 2017


Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved.



Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

Note: table data (rows) will not be exported


About to export specified tables via Conventional Path ...

Current user changed to SCOTT

. . exporting table??????????????????????????? EMP

Export terminated successfully without warnings.

[oracle@rhel6lhr tmp]$ imp? \'/ AS SYSDBA\' file=/tmp/exp_ddl_lhr_01.dmp FULL=Y indexfile=/tmp/get_ti_ddl.sql rows=n


Import: Release 11.2.0.3.0 - Production on Wed May 3 21:38:10 2017


Copyright (c) 1982, 2011, Oracle and/or its affiliates.? All rights reserved.



Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options


Export file created by EXPORT:V11.02.00 via conventional path

import done in ZHS16GBK character set and AL16UTF16 NCHAR character set

Import terminated successfully without warnings.

[oracle@rhel6lhr tmp]$ more /tmp/get_ti_ddl.sql


REM? CREATE TABLE "SCOTT"."EMP" ("EMPNO" NUMBER(4, 0), "ENAME"

REM? VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4, 0), "HIREDATE" DATE,

REM? "SAL" NUMBER(7, 2), "COMM" NUMBER(7, 2), "DEPTNO" NUMBER(2, 0))

REM? PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536

REM? NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL

REM? DEFAULT) TABLESPACE "USERS" LOGGING NOCOMPRESS ;

CONNECT SCOTT;

CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "EMP" ("EMPNO" ) PCTFREE 10

INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1

FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS"

LOGGING ;

REM? ALTER TABLE "SCOTT"."EMP" ADD CONSTRAINT "PK_EMP" PRIMARY KEY

REM? ("EMPNO") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255

REM? STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST

REM? GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING ENABLE ;

REM? ALTER TABLE "SCOTT"."EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY

REM? ("DEPTNO") REFERENCES "DEPT" ("DEPTNO") ENABLE NOVALIDATE ;

REM? ALTER TABLE "SCOTT"."EMP" ENABLE CONSTRAINT "FK_DEPTNO" ;

[oracle@rhel6lhr tmp]$

可以看到其中的創(chuàng)建表的SQL語(yǔ)句被注釋掉了,這個(gè)可以用vi命令或者文本工具來(lái)處理,處理之后就可以直接使用了。

About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內(nèi)容整理自網(wǎng)絡(luò),若有侵權(quán)請(qǐng)聯(lián)系小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客園(http://www.cnblogs.com/lhrbest)和個(gè)人微信公眾號(hào)(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個(gè)人簡(jiǎn)介及小麥苗云盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 數(shù)據(jù)庫(kù)筆試面試題庫(kù)及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號(hào)地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群號(hào):230161599(滿)、618766405

● 微信群:可加我微信,我拉大家進(jìn)群,非誠(chéng)勿擾

● 聯(lián)系我請(qǐng)加QQ好友(646634621),注明添加緣由

● 于 2018-04-01 06:00 ~ 2018-04-31 24:00 在魔都完成

● 最新修改時(shí)間:2018-04-01 06:00 ~ 2018-04-31 24:00

● 文章內(nèi)容來(lái)源于小麥苗的學(xué)習(xí)筆記,部分整理自網(wǎng)絡(luò),若有侵權(quán)或不當(dāng)之處還請(qǐng)諒解

● 版權(quán)所有,歡迎分享本文,轉(zhuǎn)載請(qǐng)保留出處

.............................................................................................................................................

●?小麥苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

●?小麥苗出版的數(shù)據(jù)庫(kù)類叢書:http://blog.itpub.net/26736162/viewspace-2142121/

●?小麥苗OCP、OCM、高可用網(wǎng)絡(luò)班:http://blog.itpub.net/26736162/viewspace-2148098/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來(lái)關(guān)注小麥苗的微信公眾號(hào)(xiaomaimiaolhr)及QQ群(DBA寶典),學(xué)習(xí)最實(shí)用的數(shù)據(jù)庫(kù)技術(shù)。

小麥苗的微信公眾號(hào) ? ? ?小麥苗的DBA寶典QQ群2?《DBA筆試面試寶典》讀者群?小麥苗的微店

.............................................................................................................................................

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評(píng)論 3 417
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,761評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,678評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,978評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容