やりたいこと
- 既存オブジェクトの Crate 文がほしい。
方法
①sqlplus でログインする
②出力フォーマットを設定しておく
.sql
SQL> SET LONG 10000
.sql
SQL> SET PAGES 0
③ GET_DLL コマンドを使用して取得する
.SQL
SQL> SELECT DBMS_METADATA.GET_DDL('オブジェクトの種類', 'オブジェクトの名前', 'スキーマ名') FROM DUAL;
名称 | 説明 |
---|---|
オブジェクトの種類 | TABLE とか、VIEWとかいれるよ |
オブジェクトの名前 | 対象オブジェクト名 |
スキーマ名 | 省略も可能。省略したときは現在のスキーマ名 |
たとえば、USER というテーブルの CREATE 文を取得したい。
使用するスキーマは現在のスキーマのときは以下の SQL 文となる
.SQL
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE', 'USER') FROM DUAL;
実行を行うと、たとえば下記のようなCREATE文がかえる。
.SQL
CREATE TABLE "HOGE"."USER"
( "USER_ID" NUMBER(2,0),
"USER_NNAME" CHAR(10),
USING INDEX PCTFREE 0 INITRANS 2 MAXTRANS 255 NOLOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE
) PCTFREE 0 PCTUSED 99 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)
TABLESPACE "USERS"