首页 > 数据库 >ORACLE命令行获取对象的DDL

ORACLE命令行获取对象的DDL

时间:2022-11-03 10:45:21浏览次数:47  
标签:dbms get DDL 命令行 ddl ORACLE select metadata

ORACLE命令行获取对象的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

以TEST用户为例:

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,'TEST') FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('VIEW',u.view_name,'TEST') FROM USER_VIEWS u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name,'TEST') FROM USER_INDEXES u;
select dbms_metadata.get_ddl('PROCEDURE',u.object_name, 'TEST',) from USER_objects u where u.object_type = 'PROCEDURE';
select dbms_metadata.get_ddl('FUNCTION',u.object_name, 'TEST',) from USER_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','TEST') from dual;

获得所有用户的DDL:

SELECT DBMS_METADATA.GET_DDL('USER',U.username) FROM DBA_USERS U;

————————————————
版权声明:本文为CSDN博主「六月闻君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39065491/article/details/121392639

标签:dbms,get,DDL,命令行,ddl,ORACLE,select,metadata
From: https://www.cnblogs.com/zclzc/p/16853647.html

相关文章

  • 在CentOS7下安装Oracle11教程
    前言安装oracle时,发现网上的文章总是缺少一些信息,导致安装不顺利,因为我对一些文章进行了整合,用以备忘。Oracle安装首先下载linux版本的oracle安装文件,然后通过XFTP上传......
  • fiddler的基础操作
    接口的组成url+请求方式+响应=接口(url+域名+端口号+方法名+入参)请求方法:post/get请求参数:username、password、tel、idcard入参类型:json、xml、form返回:状态码(code)+......
  • java命令行如何编译运行带package(包)的程序
    先用javac编译,带参数-djavac-d.****.java 然后,在当前目录下(不要到****子目录),运行java即可。java***.*****如:javac-d.FuctionDemo2.javajavacom.Fuct......
  • Oracle使用存储函数从身份证中提取出生年月
    CREATEORREPLACEFUNCTIONnianyue(CARDVARCHAR2)RETURNVARCHAR2ISNYDATE;BEGINSELECTto_date(to_char(substr(REPLACE(CARD,'',''),7,8)),'YYYYMMDD')I......
  • Oracle使用存储函数从身份证中提取性别
    CREATEORREPLACEFUNCTIONXINGBIE(CARDVARCHAR2)RETURNVARCHAR2ISXBVARCHAR2(3);BEGINSELECTDECODE(MOD(TO_NUMBER(SUBSTR(REPLACE(CARD,'',''),17,......
  • Oracle使用存储函数效验手机号是否正确
    CREATEORREPLACEFUNCTIONXIAOYAN_D(PHONENUMBERINVARCHAR2)RETURNNUMBERASFANNUMBER(11);BEGINSELECTLTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(......
  • Docker安装Oracle(简单,好用)
    Docker安装Oracle(以Oracle_11g为例)拉取oracle_11g镜像:dockerpullregistry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g运行容器1dockerrun-d-p1521:1521-......
  • Oracle创建创建清洗效验邮箱函数
    --创建清洗效验邮箱函数CREATEORREPLACEFUNCTIONXIAOYAN_Y(PHONENUMBERINVARCHAR2)RETURNVARCHAR2ASxiVARCHAR2(30);FANNUMBER(10);BEGINSELECTREPLA......
  • Mysql-sql通用语法-DDL
    ......
  • Fiddler状态面板详解
    Fiddler状态面板详解 1.简介  按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的状态面板了。2.状态面板概览Fiddler的状态面板概览,如下图所示:3.状态......