トップ ページ > Oracle-DDL調査と取得
Oracle-DDL調査と取得
Oracle上のDDLの取得についてメモ。
長く運用してきたら、絶対に使うはず。
TABLESPACE
SET PAGESIZE 0
SELECT TO_CHAR(DBMS_METADATA.GET_DDL('TABLESPACE', TABLESPACE_NAME)) DDL FROM DBA_TABLESPACES;
TABLE
SET PAGESIZE 0
SELECT TO_CHAR(DBMS_METADATA.GET_DDL('TABLE', TABLE_NAME, OWNER)) DDL FROM ALL_TABLES WHERE OWNER = 'オーナー名';
「ORA-64203: 宛先バッファは、キャラクタ・セット変換後のCLOBデータを保持するには小さすぎます。」が表示された場合はTO_CHARを外して
SELECT DBMS_METADATA.GET_DDL('TABLE', TABLE_NAME, OWNER) DDL FROM ALL_TABLES WHERE OWNER = 'オーナー名';
とする。
テーブル一つ指定する場合
SELECT TO_CHAR(DBMS_METADATA.GET_DDL('TABLE', 'テーブル名')) AS SQL FROM DUAL;
USER
おまけ:
とりあえず…
COL USER_ID FOR A7
COL DEFAULT_TABLESPACE FOR A10
COL TEMPORARY_TABLESPACE FOR A10
COL INITIAL_RSRC_CONSUMER_GROUP FOR A25
COL EXTERNAL_NAME FOR A10
SELECT * FROM USER_USERS;
とりあえず…
COL USERNAME FOR A10
COL PRIVILEGE FOR A30
SELECT * FROM USER_SYS_PRIVS;
と、
SELECT * FROM SESSION_PRIVS;
とりあえず…
COL USERNAME FOR A10
COL GRANTED_ROLE FOR A20
SELECT * FROM USER_ROLE_PRIVS;
とりあえず…
COL GRANTEE FOR A10
COL OWNER FOR A10
COL TABLE_NAME FOR A20
COL GRANTOR FOR A10
COL PRIVILEGE FOR A20
COL GRANTABLE FOR A10
COL HIERARCHY FOR A10
COL COMMON FOR A10
COL TYPE FOR A10
SELECT * FROM USER_TAB_PRIVS;