使用dbms_meadata.get_ddl获得oracle数据库对象DDL信息
来源:互联网 发布:防范网络诈骗心得800 编辑:程序博客网 时间:2024/06/06 13:21
要获取oracle数据中可使用dbms_metadata.get_ddl,其语法如下:
DBMS_METADATA.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;
例,获得一个表的DDL信息。
SQL> set long 2000000
SQL> set pagesize 0
SQL> select dbms_metadata.get_ddl('TABLE','SALES','SH') from dual;
更多关于dbms_metadata的内容可参考官方文档《 Database PL/SQL Packages 》中的dbms_metadata部分:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_metada.htm#ARPLS641
关于dbms_metadata.get_ddl获得其他对象的方法直接转载了:
http://www.cnblogs.com/wuyisky/archive/2010/05/20/1739801.html
1.得到一个表或索引的ddl语句
SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;
select dbms_metadata.get_ddl('INDEX','PK_DEPT','SCOTT') from dual;
2.得到一个用户下的所有表,索引,存储过程的ddl
SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)
FROM USER_OBJECTS u
where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE');
3.得到所有表空间的ddl语句
SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
FROM DBA_TABLESPACES TS;
4.得到所有创建用户的ddl
SELECT DBMS_METADATA.GET_DDL('USER',U.username)
FROM DBA_USERS U;
================================================================================
9i 中可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):
a. 获取单个的建表、视图和建索引的语法
set pagesize 0
set long 90000
set feedback off
set echo off
spool DEPT.sql
select dbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT') from dual;
select dbms_metadata.get_ddl('VIEW','VIEW_NAME','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','IDX_NAME','SCOTT') from dual;
spool off;
b.获取一个SCHEMA下的所有建表、视图和建索引的语法,以scott为例:
set pagesize 0
set long 90000
set feedback off
set echo off
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;
c. 获取某个SCHEMA的建全部存储过程的语法
set pagesize 0
set long 90000
set feedback off
set echo off
spool procedures.sql
select DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name) from user_objects u where object_type = 'PROCEDURE';
spool off;
d. 获取某个SCHEMA的建全部函数的语法
set pagesize 0
set long 90000
set feedback off
set echo off
spool function.sql
select DBMS_METADATA.GET_DDL('FUNCTION',u.object_name) from user_objects u where object_type = 'FUNCTION';
spool off;
- 使用dbms_meadata.get_ddl获得oracle数据库对象DDL信息
- ORACLE 使用DBMS_METADATA.GET_DDL获取DDL语句
- ORACLE 使用DBMS_METADATA.GET_DDL获取DDL语句
- ORACLE 使用DBMS_METADATA.GET_DDL获取DDL语句
- ORACLE 使用DBMS_METADATA.GET_DDL获取DDL语句
- Oracle获得数据库对象DDL语句
- [Oracle]利用DBMS_METADATA.GET_DDL函数获取数据库对象的DDL语句
- Oracle利用DBMS_METADATA.GET_DDL获取对象DDL语句
- Oracle利用DBMS_METADATA.GET_DDL获取对象DDL语句
- ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- [转]:ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- 93、ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
- Oracle利用dbms_metadata.get_ddl查看DDL语句
- Oracle利用dbms_metadata.get_ddl查看DDL语句
- 利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本
- C++学习书籍推荐
- 图像形态学 - 自适应阈值(cvAdaptiveThreshold)
- Unity3d---> IEnumerator
- 你需要的不是重构,而是理清业务逻辑
- 混迹在腾讯微博的知名站长名单
- 使用dbms_meadata.get_ddl获得oracle数据库对象DDL信息
- mysql密码修改
- Java初始化顺序
- 关于 Javascript 的闭包理解
- Flex嵌入字体错误
- 1.7Thingking In Java——小结
- ORA-12154:TNS:无法解析指定的连接标识符
- 1069 飞船飞行情况
- 关于VCPROJ文件的说明