oracle之 獲取建表ddl語句
第一種方法是使用工具,如:
pl/sql developer,在【工具】--【匯出使用者物件】出現就可以得到建表指令碼。
第二種方法是,sql語句。
DBMS_METADATA.GET_DDL包可以得到資料庫的物件的ddl指令碼。如下(SQLPLUS中執行):
1.得 到一個表的ddl語句:
SET SERVEROUTPUT ON
SET LINESIZE 1000
SET FEEDBACK OFF
set long 99999
set pagesize 4000
---去除storage等多餘引數(可選)
SQL> EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
-- 獲取ddl ##('TABLE','表名','使用者名稱')
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','CBZS_DMCODE_DEP_TYPE','MOBILE_CBZS') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','CBZS_DMCODE_DEP_TYPE','MOBILE_CBZS')
--------------------------------------------------------------------------------
CREATE TABLE "MOBILE_CBZS"."CBZS_DMCODE_DEP_TYPE"
( "TYPE_ONE" VARCHAR2(6),
"TYPE_ONE_DESC" VARCHAR2(30),
"TYPE_TWO" VARCHAR2(6),
"TYPE_TWO_DESC" VARCHAR2(30),
"TYPE_ONE_ORD" NUMBER,
"TYPE_TWO_ORD" NUMBER
) PCTFREE 0 PCTUSED 40 INITRANS 1 MAXTRANS 255 COMPRESS LOGGING
TABLESPACE "DM_TBS_001"
2.得到一個使用者下的所有表,索引,儲存過程的ddl
SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name) FROM USER_OBJECTS u where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');
3.得到所有表空間的ddl語句
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS;
4.得到所有建立使用者的ddl
SELECT DBMS_METADATA.GET_DDL('USER',U.username) FROM DBA_USERS U;
另外,若執行不了該包,則需要正確安裝好相應的包。
擴充:-- 透過dblink補資料
insert into MOBILE_CBZS.MSS_BMS_ZHIJU_YUSUAN select * from MOBILE_CBZS.MSS_BMS_ZHIJU_YUSUAN@oldhbdw;
pl/sql developer,在【工具】--【匯出使用者物件】出現就可以得到建表指令碼。
第二種方法是,sql語句。
DBMS_METADATA.GET_DDL包可以得到資料庫的物件的ddl指令碼。如下(SQLPLUS中執行):
1.得 到一個表的ddl語句:
SET SERVEROUTPUT ON
SET LINESIZE 1000
SET FEEDBACK OFF
set long 99999
set pagesize 4000
---去除storage等多餘引數(可選)
SQL> EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
-- 獲取ddl ##('TABLE','表名','使用者名稱')
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','CBZS_DMCODE_DEP_TYPE','MOBILE_CBZS') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','CBZS_DMCODE_DEP_TYPE','MOBILE_CBZS')
--------------------------------------------------------------------------------
CREATE TABLE "MOBILE_CBZS"."CBZS_DMCODE_DEP_TYPE"
( "TYPE_ONE" VARCHAR2(6),
"TYPE_ONE_DESC" VARCHAR2(30),
"TYPE_TWO" VARCHAR2(6),
"TYPE_TWO_DESC" VARCHAR2(30),
"TYPE_ONE_ORD" NUMBER,
"TYPE_TWO_ORD" NUMBER
) PCTFREE 0 PCTUSED 40 INITRANS 1 MAXTRANS 255 COMPRESS LOGGING
TABLESPACE "DM_TBS_001"
2.得到一個使用者下的所有表,索引,儲存過程的ddl
SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name) FROM USER_OBJECTS u where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');
3.得到所有表空間的ddl語句
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS;
4.得到所有建立使用者的ddl
SELECT DBMS_METADATA.GET_DDL('USER',U.username) FROM DBA_USERS U;
另外,若執行不了該包,則需要正確安裝好相應的包。
擴充:-- 透過dblink補資料
insert into MOBILE_CBZS.MSS_BMS_ZHIJU_YUSUAN select * from MOBILE_CBZS.MSS_BMS_ZHIJU_YUSUAN@oldhbdw;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2148615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 獲取ddl語句Oracle
- oracle dbms_metadata 獲取ddl語句Oracle
- Oracle中獲取TABLE的DDL語句的方法Oracle
- 獲取物件DDL語句的方法物件
- 用dbms_metadata.get_ddl獲取ddl語句
- 搬運工,oracle獲得ddl語句Oracle
- PostgreSQL獲取建表語句儲存過程SQL儲存過程
- 通過dblink獲取遠端DDL語句
- mysql中建庫、建表、增刪改查DDL語句MySql
- 獲取物件的構建語句物件
- 獲取建tablespace sql ddlSQL
- Oracle 9i輕鬆取得建表和索引的DDL語句(轉)Oracle索引
- oracle獲取ddl指令碼Oracle指令碼
- PostgreSQL 函式獲取表DDLSQL函式
- ORACLE表生成MYSQL建表DDLOracleMySql
- Mysql 獲取表設計查詢語句MySql
- 如何獲取expdp出來的dmp檔案中的DDL語句
- Sql建表語句SQL
- sql 建表語句SQL
- OCP課程11:SQL之使用DDL語句建立和管理表SQL
- oracle檢視建立物件的DDL語句Oracle物件
- Oracle利用dbms_metadata.get_ddl檢視DDL語句Oracle
- oracle lock dba_ddl_locks獲取表級共享鎖及表級排它鎖之系列八Oracle
- DBMS_METADATA包獲得物件DDL語句物件
- 使用SQL語句獲取SQLite中的表定義SQLite
- Oracle 儲存過程中的DDL語句Oracle儲存過程
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- 通過DBMS_METADATA.GET_DDL包獲得相關物件ddl語句物件
- 12c 資料泵提取建表空間語句和建表語句
- MySQL檢視建表語句MySql
- 多表查詢建表語句
- PL/SQL與DDL語句SQL
- Oracle從dump檔案中提取DDL語句方法Oracle
- 執行oracle DDL語句要注意的問題Oracle
- 獲取oracle sql語句詳細些執行計劃OracleSQL
- Oracle中獲取最低效的 topSQL的語句 (引用)OracleSQL
- oracle使用dbms_metadata.get_ddl包檢視DDL語句定義Oracle
- oracle的表分析語句Oracle