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中獲取TABLE的DDL語句的方法Oracle
- PostgreSQL獲取建表語句儲存過程SQL儲存過程
- oracle檢視物件DDL語句Oracle物件
- mysql中建庫、建表、增刪改查DDL語句MySql
- 獲取表空間DDL
- PostgreSQL 函式獲取表DDLSQL函式
- Mysql 獲取表設計查詢語句MySql
- Oracle獲取資料庫中的物件建立語句Oracle資料庫物件
- 獲取oracle sql語句詳細些執行計劃OracleSQL
- MySQL檢視建表語句MySql
- 多表查詢建表語句
- DBeave如何檢視資料庫表的DDL建立語句資料庫
- Oracle vs PostgreSQL,研發注意事項(2)-DDL語句與事務OracleSQL
- MySQL高階部分-建表語句MySql
- Laravel 獲取執行的sql語句LaravelSQL
- 【SCRIPT】Oracle表管理段管理常用語句Oracle
- 資料庫-單表結構-建表語句資料庫
- 6.3. 基本SQL語句——6.3.1. DDLSQL
- MySQL入門---(一)SQL的DDL語句MySql
- ORACLE常用語句:Oracle
- Oracle獲取所有表名資訊和獲取指定表名欄位資訊Oracle
- 【Oracle】scott使用者下表結構、初始化資料和建表語句Oracle
- flask之控制語句 if 語句與for語句Flask
- excel表結構生成powerDesigner模型,生成建表語句sqlExcel模型SQL
- MySQL 執行DDL語句 hang住了怎麼辦?MySql
- Oracle基本SQL語句OracleSQL
- Oracle 建立序列語句Oracle
- MogDB/openGauss學習筆記-獲取物件DDL筆記物件
- Oracle建表Oracle
- 通過實體類生成 mysql 的建表語句MySql
- idea內建資料庫 + sql語句庫表操作Idea資料庫SQL
- mysql建表常用sql語句個人經驗分享MySql
- ORACLE 資料庫 查詢語句與DML語句Oracle資料庫
- SQL查詢語句 (Oracle)SQLOracle
- Oracle、MySQL常見表結構變更語句對比OracleMySql
- oracle資料庫檢視鎖表的sql語句整理Oracle資料庫SQL
- MySQL之資料定義語言(DDL)MySql
- 利用WITH MOVE語句獲取資料庫邏輯檔名BG資料庫
- Oracle優化案例-單表分頁語句的優化(八)Oracle優化