`
runfeel
  • 浏览: 935611 次
文章分类
社区版块
存档分类
最新评论

[Oracle] dbms_metadata.get_ddl的用法总结

 
阅读更多

dbms_metadata.get_ddl()用于获取对象的DDL,其具体用法如下。

注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数:

set line 200
set pagesize 0
set long 99999
set feedback off
set echo off

1)获得表、索引、视图、存储过程、函数的DDL

select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;

select dbms_metadata.get_ddl('INDEX','INDEX_NAME','INDEX_OWNER') from dual;

select dbms_metadata.get_ddl('VIEW','VIEW_NAME','VIEW_OWNER') from dual;

select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','PROCEDURE_OWNER') from dual;

select dbms_metadata.get_ddl('FUNCTION','FUNCTION_NAME','FUNCTION_OWNER') from dual;

下面这个脚本用于获得某个schema下所有的表、索引、视图、存储过程、函数的DDL

set pagesize 0
set long 90000
set feedback off
set echo off
spool schema_ddl.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name,u.owner) FROM DBA_TABLES u;
SELECT DBMS_METADATA.GET_DDL('VIEW',u.view_name,u.owner) FROM DBA_VIEWS u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name,u.owner) FROM DBA_INDEXES u;
select dbms_metadata.get_ddl('PROCEDURE',u.object_name, u.owner,) from dba_objects u where u.object_type = 'PROCEDURE';
select dbms_metadata.get_ddl('FUNCTION',u.object_name, u.owner,) from dba_objects u where u.object_type = 'FUNCTION';
spool off;


2)获得表空间的DDL

获得单个表空间的DDL:

select dbms_metadata.get_ddl('TABLESPACE','TBS_NAME') from dual;


获得所有表空间的DDL:

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

3)获得用户的DDL

获得单个用户的DDL:

select dbms_metadata.get_ddl('USER','EPAY_USER') from dual;

获得所有用户的DDL:

SELECT DBMS_METADATA.GET_DDL('USER',U.username) 
FROM DBA_USERS U;
分享到:
评论

相关推荐

    [Oracle] dbms_metadata.get_ddl 的使用方法总结

    下面我们将深入探讨`dbms_metadata.get_ddl`的使用方法。 1. 获取对象的DDL `dbms_metadata.get_ddl`的基本语法如下: ```sql DBMS_METADATA.GET_DDL(object_type, object_name, schema) ``` - `object_type`:...

    Oracle常用查看表结构命令

    DBMS_METADATA.GET_TABLE/DDLS('USER_TABLES', 'TABLE_NAME'); END; ``` 这条语句将返回当前用户所有表的结构信息,包括表名、表空间名、最后分析时间等信息。 查看表字段信息 查看表字段信息可以使用`SELECT`...

    Oracle PL/SQL常用47个工具包

    38. **DBMS_METADATA.GET_DDL**: 获取数据库对象的DDL语句。 39. **DBMS_STATS.SET_TABLE_PREFS**: 设置表的统计收集偏好。 40. **DBMS_BACKUP_RESTORE**: 数据库备份和恢复工具。 41. **DBMS_CRYPTO.HASH**: ...

    从 Oracle数据库中导出SQL脚本.doc

    从 Oracle 数据库中导出 SQL 脚本 Oracle 数据库是一个功能强大...从 Oracle 数据库中导出 SQL 脚本可以使用 `dbms_metadata.get_ddl` 函数来获取指定对象的 DDL 定义,然后使用 `spool` 命令将输出结果写入到文件中。

    Oracle内置包的使用方法.rar

    本文将详细介绍Oracle内置包的使用方法,包括它们的功能、调用方式以及示例应用。 1. **DBMS_UTILITY**: 这个包主要用于数据库的实用功能,如格式化SQL语句(UTL_FMT),获取数据库版本信息,以及执行PL/SQL块等。...

    oracle数据库对象导出脚本

    每一类对象都通过`SELECT DBMS_METADATA.GET_DDL`命令来获取其定义的DDL(Data Definition Language)语句。 例如,对于表和视图: ```sql SELECT DBMS_METADATA.GET_DDL(u.object_type, u.object_name) FROM user...

    oracle sqlplus 中spool 的使用

    - `SELECT DBMS_METADATA.GET_DDL('PROCEDURE', u.object_name) FROM USER_OBJECTS u WHERE object_type = 'PROCEDURE'`:获取当前用户(brucelau)下所有存储过程的DDL语句。 #### 三、Spool命令注意事项 1. **...

    获取oracle表空间脚本

    为了获取Oracle表空间的DDL脚本,可以使用Oracle提供的`DBMS_METADATA.GET_DDL`函数。该函数允许获取数据库对象的DDL语句。下面的SQL查询演示了如何使用此函数来获取所有表空间的DDL脚本: ```sql SELECT ts....

    Oracle储存过程包加解密实现

    解密过程与之类似,先用`DBMS_METADATA.GET_DDL`获取加密后的源代码,然后解密并使用`DBMS_METADATA.SET_DDL_TEXT`更新储存过程。 需要注意的是,尽管加密储存过程能提高安全性,但也增加了管理复杂性和潜在的风险...

    查询索引对应的表和列

    通过以上介绍的两种方法——查询系统视图 `user_indexes` 和 `user_ind_columns`,以及使用 `dbms_metadata.get_ddl` 函数,我们可以有效地获取这些信息。每种方法都有其适用场景,具体选择取决于具体需求和上下文...

    DM7系统包使用手册

    ddl := DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE', 'MY_SCHEMA'); DBMS_OUTPUT.PUT_LINE(ddl); END; ``` 以上是对DM7系统包使用手册中部分关键知识点的详细解读,希望能够帮助读者更好地理解和使用这些强大的...

    oracle fyunwrap (oracle对象解密工具)

    2. **提取二进制数据**:使用`DBMS_METADATA.GET_DDL`或`DBMS_METADATA.GET_DEPENDENT_DDL`等系统包,获取加密对象的DDL,其中包含了对象的二进制编码。 3. **运行FYunwrap**:将二进制数据输入到FYunwrap工具中,...

    Oracle内置包的使用方法

    例如,你可以使用DBMS_METADATA.GET_DDL函数来获取表、索引或其他对象的创建语句,这对于备份、迁移或复制对象非常方便。 在性能优化方面,DBMS_PROFILER是一个强大的工具,它可以分析PL/SQL代码的执行性能。通过...

    oracle判断表名是否存在

    4. **使用`DBMS_METADATA.GET_DDL`包**: 这个包可以获取对象的DDL定义,如果尝试获取不存在的表,会引发异常。虽然不是直接检查,但可以作为间接判断的方式。 ```plsql DECLARE l_ddl CLOB; BEGIN DBMS_...

    Oracle轻松取得建表和索引的DDL语句

    Oracle轻松取得建表和索引的DDL语句是指通过使用Oracle提供的dbms_metadata包来获取建表和索引的DDL语句。这种方法可以解决在9i之前版本中获取DDL语句的麻烦问题。 在 Oracle 9i 中,我们可以直接通过执行dbms_...

    Oracle 20 道面试题及答案.docx

    DESCRIBE 命令可以显示表的结构信息,而 DBMS_METADATA.GET_DDL 方法可以获取表的 DDL 语句。 索引 索引可以快速访问表中的数据块。bitmap 索引是一种特殊的索引类型,适合用于 Fact Table。 约束 主键和外键是...

    oracle函数大全(分类显示).zip_Oracle 函数分类_oracle_oracle函数分类_oracle函数查阅用文档

    USER返回当前用户的名称,DBMS_METADATA.GET_DDL可以获取对象的DDL语句。 7. **条件判断函数**: IFNULL、NVL、COALESCE,用于处理空值。IFNULL、NVL在遇到NULL时返回指定的默认值,COALESCE则返回第一个非空参数...

Global site tag (gtag.js) - Google Analytics