仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 829|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:ORACLE猎取DDL的几种经常使用的办法

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:39:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”oracle
ORACLE猎取DDL的几种经常使用的办法



刘颖博

工夫:2004-2-26

mail:liuyingbo@126.com,请斧正



转载请说明出处及作者



大致的分为三种办法:

一;能够经由过程toad、plsqldevelop品级三方工具举行导出DLL操纵,用这类举措的优点在于操纵复杂便利,但必要安装,上面复杂先容一下用这两个工具取得DLL语句的操纵。



1.起首是toad工具,能够到www.quest.com网站高低载

操纵步骤的扼要先容以下:

a.启动toad,毗连方针数据库

b.点击DBA->GenerateSchemaScript,如所示:





c.呈现的操纵界面:





经由过程操纵界面已很分明的,选择响应的Schema,固然能够经由过程其他的几个tab页面选择响应的前提,点击Execute按钮,ok。具体的操纵就不说了!

d.当导出操纵停止后,会呈现如的界面





我们能够将导出的DDL剧本另存(SavetoFile)大概copy到剪贴板上(Clipboard)。

2.上面说一下别的的一个工具plsqldevelop是怎样举行到出DDL语句的

操纵步骤以下:

a.启动plsqldevelop,毗连方针数据库

b.点击Tools->ExportTables,如





c.然后呈现上面界面,如





d.在如的界面上,选择响应的内容,然后点击Export按钮,ok,会呈现界面如,实在这些工具也是挪用Oracle的Exp工具罢了





假如你没有指定文件目次,文件会呈现在plsqldevelop软件的安装目次下。

好,上面先容第二种办法

二;间接经由过程EXP/IMP工具

Oracle供应的最原始最有用的导进导收工具,我们大致上能够分为三种举措完成导出DDL。

a.经由过程imp指定indexfile参数,但这类举措不爽在于有每行前会有REM

语法大致以下:

expuserid=...tables=emprows=nfile=emp.dmp
impuserid=...file=emp.dmpindexfile=emp.sql

b.经由过程imp指定show=y,同时指定log参数,格局上也不是很爽,在格局上很美妙的仍是经由过程工具导出的对照美妙

语法大致以下:

expuserid=...tables=emprows=nfile=emp.dmp
impuserid=...file=emp.dmpshow=ylog=emp.sql

c.使用unix下有strings命令,语法大致以下,这类办法对照文明:

expuserid=...tables=tab1rows=nfile=tab1.dmp
stringsemp.dmp>emp.sql
emp.sql中就有DLL语句了

第三种办法,是使用oracle9i的新特征,就是DBMS_METADATA包,来失掉DLL语句,这个也是本文要先容的重点

三;经由过程9i的DBMS_METADATA包失掉DLL语句

基础上用到的语法以下:

a.猎取单个的建表和建索引的语法

setheadingoff;
setechooff;
Setpages999;
setlong90000;

spoolDEPT.sql
selectdbms_metadata.get_ddl(TABLE,DEPT,SCOTT)fromdual;
selectdbms_metadata.get_ddl(INDEX,DEPT_IDX,SCOTT)fromdual;
spooloff;



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

setpagesize0

setlong90000

setfeedbackoff

setechooff
spoolscott_schema.sql
connectscott/tiger;
SELECTDBMS_METADATA.GET_DDL(TABLE,u.table_name)
FROMUSER_TABLESu;
SELECTDBMS_METADATA.GET_DDL(INDEX,u.index_name)
FROMUSER_INDEXESu;
spooloff;



c.猎取某个SCHEMA的建全体存储历程的语法

connectbrucelau/brucelau;

spoolprocedures.sql


select
DBMS_METADATA.GET_DDL(PROCEDURE,u.object_name)

from
user_objectsu

where
object_type=PROCEDURE;


spooloff;



另:

dbms_metadata.get_ddl(TABLE,TAB1,USER1)
三个参数中,第一个指定导出DDL界说的工具范例(此例中为表范例),第二个是工具名(此例中即表名),第三个是工具地点的用户名。



参考:

ZDNetChina《轻松获得Oracle布局形貌句法》

Oracle的官方文档





感激shangym(山水天雪桥)


与其他数据库相比,MySQL易学易用。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-19 20:50:46 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
海妖 该用户已被删除
板凳
发表于 2015-1-25 05:36:22 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
不帅 该用户已被删除
地板
发表于 2015-2-2 14:47:51 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
若相依 该用户已被删除
5#
发表于 2015-2-7 23:05:23 | 只看该作者
总感觉自己还是不会SQL
若天明 该用户已被删除
6#
发表于 2015-2-23 14:46:09 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
小魔女 该用户已被删除
7#
发表于 2015-3-7 09:20:46 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
山那边是海 该用户已被删除
8#
发表于 2015-3-14 18:10:17 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 01:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表