原文转载至:http://bbs.csdn.net/topics/390819138
--用户创建语句,权限语句
select dbms_metadata.get_ddl('USER','SCOTT') from dual;
select dbms_metadata.get_granted_ddl('OBJECT_GRANT','SCOTT') from dual;
select dbms_metadata.get_granted_ddl('ROLE_GRANT','SCOTT') from dual;
select dbms_metadata.get_granted_ddl('SYSTEM_GRANT','SCOTT') from dual;
--表空间创建语句
select dbms_metadata.get_ddl('TABLESPACE','EXAMPLE') from dual;
以上是例子,根据情况改.
你如果不是想查询用户和表空间的创建语句,只是为了导出的话,个人建议你还是用expdp,content=metadata_only就可以了.
除了用户和表空间其他对象不是我需要的。另外我一个库有很多用户,有没有更方便的导出方法。这个已经可以满足需求了。
类似select dbms_metadata.get_ddl('USER',username) from dba_users where username in ('SCOTT','SYSTEM')就可以方便导出
这个不错。可以基于这种做法,写个存储过程,将相关的语句写到一个文件里