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;
分享到:
相关推荐
下面我们将深入探讨`dbms_metadata.get_ddl`的使用方法。 1. 获取对象的DDL `dbms_metadata.get_ddl`的基本语法如下: ```sql DBMS_METADATA.GET_DDL(object_type, object_name, schema) ``` - `object_type`:...
DBMS_METADATA.GET_TABLE/DDLS('USER_TABLES', 'TABLE_NAME'); END; ``` 这条语句将返回当前用户所有表的结构信息,包括表名、表空间名、最后分析时间等信息。 查看表字段信息 查看表字段信息可以使用`SELECT`...
38. **DBMS_METADATA.GET_DDL**: 获取数据库对象的DDL语句。 39. **DBMS_STATS.SET_TABLE_PREFS**: 设置表的统计收集偏好。 40. **DBMS_BACKUP_RESTORE**: 数据库备份和恢复工具。 41. **DBMS_CRYPTO.HASH**: ...
从 Oracle 数据库中导出 SQL 脚本 Oracle 数据库是一个功能强大...从 Oracle 数据库中导出 SQL 脚本可以使用 `dbms_metadata.get_ddl` 函数来获取指定对象的 DDL 定义,然后使用 `spool` 命令将输出结果写入到文件中。
本文将详细介绍Oracle内置包的使用方法,包括它们的功能、调用方式以及示例应用。 1. **DBMS_UTILITY**: 这个包主要用于数据库的实用功能,如格式化SQL语句(UTL_FMT),获取数据库版本信息,以及执行PL/SQL块等。...
每一类对象都通过`SELECT DBMS_METADATA.GET_DDL`命令来获取其定义的DDL(Data Definition Language)语句。 例如,对于表和视图: ```sql SELECT DBMS_METADATA.GET_DDL(u.object_type, u.object_name) FROM user...
- `SELECT DBMS_METADATA.GET_DDL('PROCEDURE', u.object_name) FROM USER_OBJECTS u WHERE object_type = 'PROCEDURE'`:获取当前用户(brucelau)下所有存储过程的DDL语句。 #### 三、Spool命令注意事项 1. **...
为了获取Oracle表空间的DDL脚本,可以使用Oracle提供的`DBMS_METADATA.GET_DDL`函数。该函数允许获取数据库对象的DDL语句。下面的SQL查询演示了如何使用此函数来获取所有表空间的DDL脚本: ```sql SELECT ts....
解密过程与之类似,先用`DBMS_METADATA.GET_DDL`获取加密后的源代码,然后解密并使用`DBMS_METADATA.SET_DDL_TEXT`更新储存过程。 需要注意的是,尽管加密储存过程能提高安全性,但也增加了管理复杂性和潜在的风险...
通过以上介绍的两种方法——查询系统视图 `user_indexes` 和 `user_ind_columns`,以及使用 `dbms_metadata.get_ddl` 函数,我们可以有效地获取这些信息。每种方法都有其适用场景,具体选择取决于具体需求和上下文...
ddl := DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE', 'MY_SCHEMA'); DBMS_OUTPUT.PUT_LINE(ddl); END; ``` 以上是对DM7系统包使用手册中部分关键知识点的详细解读,希望能够帮助读者更好地理解和使用这些强大的...
2. **提取二进制数据**:使用`DBMS_METADATA.GET_DDL`或`DBMS_METADATA.GET_DEPENDENT_DDL`等系统包,获取加密对象的DDL,其中包含了对象的二进制编码。 3. **运行FYunwrap**:将二进制数据输入到FYunwrap工具中,...
例如,你可以使用DBMS_METADATA.GET_DDL函数来获取表、索引或其他对象的创建语句,这对于备份、迁移或复制对象非常方便。 在性能优化方面,DBMS_PROFILER是一个强大的工具,它可以分析PL/SQL代码的执行性能。通过...
4. **使用`DBMS_METADATA.GET_DDL`包**: 这个包可以获取对象的DDL定义,如果尝试获取不存在的表,会引发异常。虽然不是直接检查,但可以作为间接判断的方式。 ```plsql DECLARE l_ddl CLOB; BEGIN DBMS_...
Oracle轻松取得建表和索引的DDL语句是指通过使用Oracle提供的dbms_metadata包来获取建表和索引的DDL语句。这种方法可以解决在9i之前版本中获取DDL语句的麻烦问题。 在 Oracle 9i 中,我们可以直接通过执行dbms_...
DESCRIBE 命令可以显示表的结构信息,而 DBMS_METADATA.GET_DDL 方法可以获取表的 DDL 语句。 索引 索引可以快速访问表中的数据块。bitmap 索引是一种特殊的索引类型,适合用于 Fact Table。 约束 主键和外键是...
USER返回当前用户的名称,DBMS_METADATA.GET_DDL可以获取对象的DDL语句。 7. **条件判断函数**: IFNULL、NVL、COALESCE,用于处理空值。IFNULL、NVL在遇到NULL时返回指定的默认值,COALESCE则返回第一个非空参数...