ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

DBMS_METADATE.GET_DDLʹÓÃ(Ò»)
2015-07-24 10:55:37 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:1´Î
Tags£ºDBMS_METADATE.GET_DDL ʹÓÃ

µ±ÎÒÃÇÏëÒª²é¿´Ä³¸ö±í»òÕßÊDZí¿Õ¼äµÄDDLµÄʱºò£¬¿ÉÒÔÀûÓà dbms_metadata.get_ddl Õâ¸ö°üÀ´²é¿´¡£

dbms_metadata°üÖеÄget_ddlº¯ÊýÏêϸ²ÎÊý£º

GET_DDLº¯Êý·µ»Ø´´½¨¶ÔÏóµÄÔ­Êý¾ÝµÄDDLÓï¾ä£¬Ïêϸ²ÎÊýÈçÏÂ
-- object_type --- ÐèÒª·µ»ØÔ­Êý¾ÝµÄDDLÓï¾äµÄ¶ÔÏóÀàÐÍ
-- name --- ¶ÔÏóÃû³Æ
-- schema --- ¶ÔÏóËùÔÚµÄSchema£¬Ä¬ÈÏΪµ±Ç°Óû§ËùÔÚËùSchema
-- version --- ¶ÔÏóÔ­Êý¾ÝµÄ°æ±¾
-- model --- Ô­Êý¾ÝµÄÀàÐÍĬÈÏΪORACLE
-- transform. --- XSL-T transform. to be applied.
-- RETURNS --- ¶ÔÏóµÄÔ­Êý¾ÝĬÈÏÒÔCLOBÀàÐÍ·µ»Ø

dbms_metadata°üÖеÄget_ddlº¯Êý¶¨Ò壺

FUNCTION get_ddl (

object_type IN VARCHAR2,
name IN VARCHAR2,
schema IN VARCHAR2 DEFAULT NULL,
version IN VARCHAR2 DEFAULT 'COMPATIBLE',
model IN VARCHAR2 DEFAULT 'ORACLE',
transform. IN VARCHAR2 DEFAULT 'DDL'

) RETURN CLOB;

×¢Ò⣺Èç¹ûʹÓÃsqlplusÐèÒª½øÐÐÏÂÁиñʽ»¯£¬ÌرðÐèÒª¶Ôlong½øÐÐÉèÖ㬷ñÔòÎÞ·¨ÏÔʾÍêÕûµÄSQL

set linesize 120
set pages 1000
set long 10000

---------------------------------------------------------------------------------------

²é¿´´´½¨Óû§±íµÄSQL

²é¿´µ±Ç°Óû§±íµÄSQL£º

SELECT DBMS_METADATA.GET_DDL('TABLE','EMP') FROM DUAL;

²é¿´ÆäËûÓû§±íµÄSQL£º

SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;


²é¿´´´½¨Óû§Ë÷ÒýµÄSQL

²é¿´ËùÐè±íµÄË÷Òý£º

SELECT INDEX_NAME,INDEX_TYPE,TABLE_NAME FROM user_indexes WHERE table_name='EMP';

²é¿´µ±Ç°Óû§Ë÷ÒýµÄSQL£º

SELECT DBMS_METADATA.GET_DDL ('INDEX','PK_DEPT') FROM DUAL;

²é¿´ÆäËûÓû§Ë÷ÒýµÄSQL£º

SELECT DBMS_METADATA.GET_DDL ('INDEX','PK_DEPT','SCOTT') FROM DUAL;

²é¿´´´½¨Ö÷¼üµÄSQL

²é¿´ËùÐè±íµÄÔ¼Êø£º

SELECT OWNER,TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE

FROM user_constraints WHERE TABLE_NAME='EMP';

²é¿´´´½¨Ö÷¼üµÄSQL£º

SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','EMP_PK') FROM DUAL;

²é¿´´´½¨Íâ¼üµÄSQL£º

SELECT DBMS_METADATA.GET_DDL('REF_CONSTRAINT','EMP_FK_DEPT') FROM DUAL;

²é¿´´´½¨VIEWµÄÓï¾ä

²é¿´µ±Ç°Óû§ÊÓͼµÄSQL£º

SELECT DBMS_METADATA.GET_DDL('VIEW', 'MY_TABLES') FROM DUAL;

²é¿´ÆäËûÓû§ÊÓͼµÄSQL£º

SELECT DBMS_METADATA.GET_DDL('VIEW', 'MY_TABLES','SCOTT') FROM DUAL;

²é¿´´´½¨ÊÓͼµÄSQLÒ²¿ÉÒÔ£º

SELECT TEXT FROM user_views WHERE view_name='VIEW_NAME';

---------------------------------------------------------------------------

DBMS_METADATA.GET_DDLµÄһЩʹÓü¼ÇÉ

µÃµ½Ò»¸öÓû§ÏµÄËùÓÐ±í£¬Ë÷Òý£¬´æ´¢¹ý³Ì£¬º¯ÊýµÄddlÓï¾ä£º

SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME)
FROM USER_OBJECTS U
WHERE U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE','FUNCTION');

µÃµ½ËùÓбí¿Õ¼äµÄddlÓï¾ä£º

SELECT DBMS_METADATA.GET_DDL('TABLESPACE',TS.tablespace_name)
FROM DBA_TABLESPACES TS;

µÃµ½ËùÓд´½¨Óû§µÄddlÓï¾ä£º

SELECT DBMS_METADATA.GET_DDL('USER',U.username)
FROM DBA_USERS U;

---------------------------------------------------------------------------

ÀûÓÃDBMS_METADATA.GET_DDL°üµÃµ½Êý¾Ý¿âµÄ¶ÔÏóµÄddl½Å±¾

»ñÈ¡µ¥¸öµÄ½¨±í¡¢ÊÓͼºÍ½¨Ë÷ÒýµÄÓï·¨£º

SET PAGESIZE 1000

SET LINESIZE 120

SET NEWPAGE 0

SET ECHO OFF /* ÏÔʾÎļþÖеÄÃüÁֻÏÔʾִÐнá¹û */

/* SET ECHO ON ÏÔʾÎļþÖеÄÿÌõÃüÁî¼°Ö´Ðнá¹û */

SET LONG 10000

SPOOL spool/dept.sql

select dbms_metadata.get_ddl('TABLE','TABLE_NAME','SCOTT') from dual;
select dbms_metadata.get_ddl('VIEW','VIEW_NAME','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME','SCOTT') from dual;

SPOOL OFF;

»ñȡһ¸öSCHEMAϵÄËùÓн¨±í¡¢ÊÓͼºÍ½¨Ë÷ÒýµÄÓï·¨£¬ÒÔscottΪÀý£º

SET PAGESIZE 1000

SET LINESIZE 120

SET NEWPAGE 0

SET ECHO OFF

SET LONG 10000

SPOOL spool/schema.sql

connect scott/tiger;
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('VIEW',u.VIEW_name) FROM USER_VIEWS u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

SPOOL OFF;

»ñȡij¸öSCHEMAµÄ½¨È«²¿´æ´¢¹ý³ÌµÄÓï·¨£º

SET PAGESIZE 1000

SET LINESIZE 120

SET NEWPAGE 0

SET ECHO OFF

SET LONG 10000
Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºUNDO±í¿Õ¼äË𻵵¼ÖÂÊý¾Ý¿âÎÞ·¨OPEN ÏÂһƪ£ºHibernate»ù´¡Ó³Éä

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)