在sql/plus中可调用dbms_Metadata.get_ddl()函数来查看数据库对象的ddl,
便于显示,先设置如下参数:
setline200;--设置行宽为200字符 setpagesize0;--设置每页的行数为0,(避免分页) setlong99999;--设置长类型显示字节数 setFeedbackoff;--关闭回显处理记录行数 setechooff;--设置运行命令是不显示语句
获取对象ddl:
SELECTDBMS_MetaDATA.GET_DLL('TABLE','TABLE_NAME','TABLE_OWNER')FROMDUAL; SELECTDBMS_MetaDATA.GET_DLL('VIEW','VIEW_NAME','VIEW_OWNER')FROMDUAL; SELECTDBMS_MetaDATA.GET_DLL('INDEX','INDEX_NAME','INDEX_OWNER')FROMDUAL; SELECTDBMS_MetaDATA.GET_DLL('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER')FROMDUAL; SELECTDBMS_MetaDATA.GET_DLL('PROCUDURE','PROCUDURE_NAME','PROCUDURE_OWNER') FROMDUAL; SELECTDBMA_MetaDATA.GET_DLL('TABLESPACE','TABLESPACE_NAME')FROMDUAL; SELECTDBMS_MetaDATA.GET_DLL('USER','USER_NAME')FROMDUAL;
获取schema下的所有对象的ddl:
SELECTDBMS_MetaDATA.GET_DLL('TABLE',u.table_name,u.owner)FROMDBA_TABLESu; SELECTDBMS_MetaDATA.GET_DLL('VIEW',u.view_name,u.owner)FROMDBA_VIEWSu; SELECTDBMS_MetaDATA.GET_DLL('INDEX',u.index_name,u.owner)FROMDBA_INDEXSu; SELECTDBMS_MetaDATA.GET_DLL('FUNCTION',u.object_name,u.owner)FROMDBA_OBJECTSuWHEREOBJECT_TYPE='FUNCTION'; SELECTDBMS_MetaDATA.GET_DLL('PROCUDURE',u.owner)FROMDBA_OBJECTSuWHEREOBJECT_TYPE='PROCUDURE'; SELECTDBMS_MetaDATA.GET_DLL('TABLESPACE',u.tablespace_name) FROMDBA_TABLESPACESu; SELECTDBMS_MetaDATA.GET_DLL('USER',u.user_name)FROMDBA_USERSu;