dbms_metadata.get_ddl的使用
dbms_metadata.get_ddl的使用
對於這個函式我覺得有以下幾個方面的用處。
1、想要詳細的瞭解一個物件的屬性。
2、獲得物件建立的DDL語句,用於物件的重建或者重用其中的一部分。
SQL> set linesize 300--設定sqlplus 中輸出的寬度為足夠寬,以免輸出換行。
SQL> set long 100000--dbms_metadata.get_ddl 函式返回的型別是clob,所以設定long為足夠大。
SQL> set pagesize 0--禁用分頁。
SQL> select dbms_metadata.get_ddl('TABLE','T','HR') from dual;
CREATE TABLE "HR"."T"
( "EMPLOYEE_ID" NUMBER(6,0),
"FIRST_NAME" VARCHAR2(20),
"LAST_NAME" VARCHAR2(25) NOT NULL ENABLE,
"EMAIL" VARCHAR2(25) NOT NULL ENABLE,
"PHONE_NUMBER" VARCHAR2(20),
"HIRE_DATE" DATE NOT NULL ENABLE,
"JOB_ID" VARCHAR2(10) NOT NULL ENABLE,
"SALARY" NUMBER(8,2),
"COMMISSION_PCT" NUMBER(2,2),
"MANAGER_ID" NUMBER(6,0),
"DEPARTMENT_ID" NUMBER(4,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"
dbms_metadata.get_ddl 常用的有三個引數,object_type 指定物件型別,name 指定物件名稱,schema 指定物件所在的schema,預設是當前使用者。dbms_metadata.get_ddl 的輸出是可以直接使用的,比如先把表 t 刪除。
SQL> drop table t;
Table dropped.
使用剛才 dbms_metadata.get_ddl 的輸出,重建表t。
SQL> ed
Wrote file afiedt.buf
1 CREATE TABLE "HR"."T"
2 ( "EMPLOYEE_ID" NUMBER(6,0),
3 "FIRST_NAME" VARCHAR2(20),
4 "LAST_NAME" VARCHAR2(25) NOT NULL ENABLE,
5 "EMAIL" VARCHAR2(25) NOT NULL ENABLE,
6 "PHONE_NUMBER" VARCHAR2(20),
7 "HIRE_DATE" DATE NOT NULL ENABLE,
8 "JOB_ID" VARCHAR2(10) NOT NULL ENABLE,
9 "SALARY" NUMBER(8,2),
10 "COMMISSION_PCT" NUMBER(2,2),
11 "MANAGER_ID" NUMBER(6,0),
12 "DEPARTMENT_ID" NUMBER(4,0)
13 ) SEGMENT CREATION IMMEDIATE
14 PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
15 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
16* PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS"
SQL> /
Table created.
注:為了更加方便的儲存dbms_metadata.get_ddl 的輸出,可以使用spool。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-730527/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Oracle] dbms_metadata.get_ddl 的使用方法總結Oracle
- 使用DBMS_METADATA.GET_DDL獲取物件的DDL指令碼物件指令碼
- dbms_metadata.get_ddl的妙用
- dbms_metadata.get_ddl的用法
- 使用dbms_metadata.get_ddl檢視物件的定義語句。物件
- dbms_metadata.get_ddl
- DBMS_METADATA.GET_DDL獲取使用者ddl指令碼指令碼
- 關於dbms_metadata.get_ddl的認識
- dbms_metadata.get_ddl學習
- 關於dbms_metadata.get_ddl
- oracle使用dbms_metadata.get_ddl包檢視DDL語句定義Oracle
- dbms_metadata.get_ddl詳細用法
- 獲取object的建立指令碼 - DBMS_METADATA.GET_DDLObject指令碼
- DBMS_METADATA.GET_DDL的輸出怎麼顯示不全呀?
- oracle dbms_metadata.get_ddl實現對子句輸出的控制Oracle
- dbms_metadata.get_ddl()來獲得物件的定義語句物件
- 在cursor遊標中使用dbms_metadata.get_ddl提取依賴其它物件的父物件之相關性物件
- 利用dbms_metadata.get_ddl檢視DDL語句
- 用dbms_metadata.get_ddl獲取ddl語句
- Oracle利用dbms_metadata.get_ddl檢視DDL語句Oracle
- 利用dbms_metadata.get_ddl生成對應定義語句
- 通過DBMS_METADATA.GET_DDL包獲得相關物件ddl語句物件
- [20230510]19c dg無法使用dbms_metadata.get_ddl檢視錶結構定義.txt
- Calling Dbms_metadata.Get_ddl From Stored Procedure Results Ora-31603_463483.1
- 在開發庫rhel5 oracle10.2.0.4上執行dbms_metadata.get_ddl報錯ORA-39212Oracle
- Scrapy框架的使用之Scrapyrt的使用框架
- Docker框架的使用系列教程(四)容器的使用Docker框架
- Docker的使用Docker
- pip 的使用
- Redis的使用Redis
- MongoDB的使用MongoDB
- mysql的使用MySql
- Typeof的使用
- iview 的使用View
- git的使用Git
- IntentService的使用Intent
- RestTemplate的使用REST
- lombok的使用Lombok