`

ORACLE获取DDL(Create Table)的几种常用的方法(转载)

阅读更多
转自:http://hi.baidu.com/fuguoliang/blog/item/c4183fc64628d61e9c163da0.html
大体的分为三种方法:

一、可以通过toad、plsql develop等第三方工具进行导出DLL操作,用这种办法的好处在于操作简单方便,但需要安装,下面简单介绍一下用这两个工具获得DLL语句的操作。

二、直接通过EXP/IMP工具

Oracle提供的最原始最实用的导入导出工具,我们大体上可以分为三种办法实现导出DDL。

a. 通过imp指定indexfile参数,但这种办法不爽在于有每行前会有REM

语法大体如下:

exp userid=... tables=emp rows=n file=emp.dmp
imp userid=... file=emp.dmp indexfile=emp.sql

b. 通过imp指定show=y,同时指定log参数,格式上也不是很爽,在格式上很美观的还是通过工具导出的比较美观

语法大体如下:

exp userid=... tables=emp rows=n file= emp.dmp
imp userid=... file= emp.dmp show=y log=emp.sql

c. 利用unix下有strings命令,语法大体如下,这种方法比较野蛮:

exp userid=... tables=tab1 rows=n file=tab1.dmp
strings emp.dmp >emp.sql
emp.sql中就有DLL语句了

三、通过9i的DBMS_METADATA包得到DLL语句

基本上用到的语法如下:

a. 获取单个的建表和建索引的语法
set heading off;
set echo off;
Set pages 999;
set long 90000;

spool DEPT.sql
select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
spool off;

b.获取一个SCHEMA下的所有建表和建索引的语法,以scott为例:

set pagesize 0
set long 90000
set feedback off

set echo off
spool scott_schema.sql
connect scott/tiger;
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;
spool off;

c. 获取某个SCHEMA的建全部存储过程的语法
connect brucelau /brucelau;
spool procedures.sql

select DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name) from user_objects u where object_type = 'PROCEDURE';
spool off;


另:dbms_metadata.get_ddl('TABLE','TAB1','USER1')
三个参数中,第一个指定导出DDL定义的对象类型(此例中为表类型),第二个是对象名(此例中即表名),第三个是对象所在的用户名。
分享到:
评论

相关推荐

    最全的oracle常用命令大全.txt

    下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...

    oracle advanced sql 高级SQL教程 ORACLE官方教材

    CREATE INDEX with CREATE TABLE Statement 6-24 Summary 6-25 Practice 6 Overview 6-26 A Practice Solutions B Table Descriptions and Data C Writing Advanced Scripts D Oracle Architectural Components ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    学习oracle,首先我们必须要掌握常用的基本命令,oracle中的命令比较多,常用的命令如下: 1. 登录命令(sqlplus) 说明:用于登录到oracle数据库 用法:sqlplus 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户...

    ddlparse:DDL parase并转换为BigQuery JSON模式和DDL语句

    DDL解析并获取表架构信息。 当前,仅支持CREATE TABLE语句。 转换为和。 支持的数据库是MySQL / MariaDB,PostgreSQL,Oracle,Redshift。 需求 Python> = 3.5 安装 安装 点安装: $ pip install ddlparse 命令...

    Oracle部分知识

    命令窗口下进行连接Oracle ... 创建 create table table_name(字段1,字段2); 查看表结构 desc table_name; 插入数据 insert into table_name values(字段值1,字段值2); 查看表记录 select * from table_name;

    oracle公司内部的培训资料

    Les09 : 创建和管理表[CREATE/ALTER/DROP TABLE] Les10 : 约束[NOT NULL / UNIQUE / PRIMARY KEY / FOREIGN KEY / CHECK] Les11 : 视图[CREATE OR REPLACE VIEW empvu80 (id_number, name, sal, department_id) AS ....

    oracle精华笔记

    oracle精华文档,内容详实, SQL(结构化查询语言) Select 字段(*) from 表名 where ...group by ......Create table 表名 Drop table 表名 Alter table 表名 add 列名 数据类型 Alter table 表名 drop column 列名

    Oracle数据库学习笔记

    数据定义语言(DDL): Create(创建), Alter(更改), Drop(删除). 数据操纵语言(DML): Select(选择), Insert(插入), Update(更新), Delete(删除). 事务控制语言(TCL) : Commit(提交), ...

    orcale常用命令

    下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...

    彻底搞清楚library cache lock的成因和解决方法

    第一种情况,当会话1(session 1)在对一个表执行DML 或者 DDL,与此同时还有另一个会话,我们姑且称之为会话2(session 2),这个会话2也在对这个表执行DDL(如ALTER TABLE),当会话2的完成需要很长时间时(依操作...

    最完整的Toad For Oracle使用手册

    Export DDL 310 Export File Browser 318 General Export 324 General Import 329 Generate Database Script 341 Generate Schema Script 342 Managing Projects 346 Using Automation Designer to Control Toad 346...

    ORACLE锁深入分析

    根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    ORACLE大表分区

    同时请执行GRANT CREATE ANY TABLE TO DBUSER, 因为使用到了动态的CREATE TABLE语句; 01) >AGGRE_ERROR_INFO_DDL.SQL 如果日志表AGGRE_ERROR_INFO已经存在,该步骤跳过。 02) >GET_MILLISECOND.SQL 如果函数GET_...

    SQL基础编写与调试优化

    ORACLE SQL语句编写与调优 ORACLE交流群48949977 内容简介 第一部分 SQL基础 SQL简介 发展历史 SQL语句分类(DDL、DML、DQL、DCL) 内容简介 第五部分 SQL优化 优化器 SQL语句执行过程 SQL优化术语 第一...

    ora-exploits-classic:Oracle 经典注入漏洞利用库 - Perl 和 SQL 版本

    Oracle 经典注入漏洞存储库 - Perl 和 SQL 版本 SQL  ctxsys-drvxtabc-create_tables.sql  dbms_cdc_subscribe.sql  dbms_exp_ext.sql  dbms_meta_get_ddl.sql  kupm-mcpmain.sql  kupv-ft_attach...

    mysql数据库的基本操作语法

    Ø 常用查询 MySQL结束符是“;”结束。 1、 显示所有数据库 show databases; 2、 删除数据库 drop database dbName; 3、 创建数据库 create database [if not exists] dbName; 中括号部分可选的,判断该数据不存在...

    oracle数据库经典题目

    A.CREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B ) A.SET ROLE ALL B. SET ROLE ENABLE ALL C. ALTER SESSION ALL D.ALTER USER ROLE ALL 28. 下列...

    Oracle数据的维护(增删改查)

    ①create table 、alter table、drop table和truncate table等属于DDL语言。 ②insert、update、delete和select等属于DML语言 二、最常用的运算符和函数 1.算术运算符:+,-,*,/; 2.赋值运算符: =; 3.字符串...

    Oracle sqldeveloper without jdk (win+linux)

    select dbms_metadata.get_ddl('TABLE',table_name , user ) from user_tables; You need to reload $ORACLE_HOME/rdbms/admin/catmeta.sql 2.3 If Snippets are not accessible You may have not done a clean ...

Global site tag (gtag.js) - Google Analytics