Oracle系列培训教材之三常用工具.docx
- 文档编号:27229075
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:32
- 大小:137.07KB
Oracle系列培训教材之三常用工具.docx
《Oracle系列培训教材之三常用工具.docx》由会员分享,可在线阅读,更多相关《Oracle系列培训教材之三常用工具.docx(32页珍藏版)》请在冰豆网上搜索。
Oracle系列培训教材之三常用工具
产品名称Productname
密级Confidentialitylevel
内部公开
产品版本Productversion
Total33pages共33页
Oracle系列培训之三(常用工具)
Preparedby
拟制
李健华
Date
日期
2004-08-19
Reviewedby
评审人
Date
日期
yyyy-mm-dd
Approvedby
批准
Date
日期
yyyy-mm-dd
Authorizedby
签发
Date
日期
yyyy-mm-dd
HuaweiTechnologiesCo.,Ltd.
华为技术有限公司
Allrightsreserved
版权所有XX
目录
第1章SQL*Plus介绍1-1
1.1简介1-1
1.2使用说明1-1
1.3在SQL*Plus中的COPY命令1-2
1.4在SQL*Plus中把查询结果输出到文件中1-4
1.5使用SQL*Plus执行文件中的SQL语句1-5
1.6在SQL*Plus中启动和关闭Oracle数据库1-5
1.7在SQL*Plus中创建和删除用户1-6
第2章exp和imp介绍2-7
2.1导出工具exp2-7
2.2导入工具imp2-10
第3章SQL*Loader介绍3-15
3.1简介3-15
3.2使用说明3-15
第4章PL/SQLDeveloper和TOAD介绍4-20
4.1PL/SQLDeveloper介绍4-20
4.2TOAD介绍4-21
第5章IIN平台提供的myload,myunload和mydbload工具介绍5-23
5.1myload介绍5-23
5.2myunload介绍5-23
5.3mydbload介绍5-24
第6章Oracle常用资料和网站6-26
6.1常用资料6-26
6.2相关网站6-26
第7章附录7-29
插图目录
图4-1PL/SQLDeveloper界面图4-21
图4-2TOAD界面图4-22
表格目录
表6-1Oracle相关英文网站6-26
表6-2Oracle相关中文网站6-28
表6-3Oracle软件下载网站6-28
第1章SQL*Plus介绍
1.1简介
SQL*Plus是用于访问Oracle数据库的交互式应用程序,它也是数据库系统管理员不可缺少的工具。
通常的SQL语句操作,都能在这里执行。
1.2使用说明
1.运行sqlplus–H能够得到以下帮助:
$sqlplus-H
SQL*Plus:
Release9.2.0.1.0-Production
用法:
SQLPLUS[[
其中
:
=-H|-V|[[-L][-M
:
=
:
=@
"-H"显示SQL*Plus的版本标识和使用语法
"-V"显示SQL*Plus的版本标识
"-L"只尝试登录一次
"-M
"-R
"-S"usessilentmode
当从一个脚本中运行SQL*Plus时,可以使用-S[ILENT]参数,因为它消除了SQL*Plus被激活时显示的全部信息,例如SQL*Plus标志、提示信息和命令行提示符。
[start]子句让你能够启动SQL*Plus并运行一个包含SQL*Plus命令、SQL语句和/或PL/SQL块的任意组合的命令文件。
另外,你可以向这个命令文件传递参数。
如果你没有输入用户名和/或口令,SQL*Plus提示你输入它们。
2.在你成功地启动SQL*Plus后,可以在SQL*Plus提示符(SQL>)状态下输入三种类型的命令:
1)用于处理数据库对象和操作数据库中存储的数据的SQL命令/语句。
2)用于处理数据库对象和操作数据库中存储的数据的PL/SQL(过程化语言/SQL)块。
3)用于设置选项、编辑、存储和提取SQL命令与PL/SQL块以及格式化查询输出结果的SQL*Plus命令。
3.要向SQL*Plus提交一条SQL命令,请在命令的结尾处输入一个分号(;)并且按下回车键。
SQL*Plus执行该命令,显示查询的结果并且返回到提示符状态。
4.要结束一个PL/SQL块,在它自己的行上输入一个小数点即可。
要提交一个PL/SQL块用于执行,在PL/SQL的行上用一条斜线(/)结束它并按下回车键。
1.3在SQL*Plus中的COPY命令
1.COPY命令用于实现以下几个功能
1)从一个本地数据库将一个或多个表或整个模式拷贝到一个远程数据库或另外一个本地数据库。
这可以用于从一个数据库将整个模式移
2)动到另外一个数据库,而不需要使用导出/导入工具,当导出大于操作系统文件限制的文件时这尤其有用。
3)将一个表中指定的记录(基于查询)拷贝到远程数据库或本地数据库的其他表中。
4)将包含LONG类型数据列的表的内容拷贝到其他表。
因为LONG类型的列不能用于SELECT语句中,所以这是解决此问题的唯一方法。
5)从一个Oracle数据库向一个非Oracle数据库拷贝表。
2.COPY命令的用法如下:
SQL>helpcopy
COPY
----
COPYcopiesdatafromaquerytoatableinalocalorremote
database.COPYsupportsCHAR,DATE,LONG,NUMBERandVARCHAR2.
COPY{FROMdatabase|TOdatabase|FROMdatabaseTOdatabase}
{APPEND|CREATE|INSERT|REPLACE}destination_table
[(column,column,column,...)]USINGquery
wheredatabasehasthefollowingsyntax:
username[/password]@connect_identifier
实例1:
把sunljh用户中的basetab_ccs表结构和所有数据copy到dywa用户下,用dywa用户登陆,执行:
SQL>copyfromsunljh/sunljh@ora9replacebasetab_ccs(saccountnumber,naccountleft,spinnumber)usingselectsaccountnumber,naccountleft,spinnumberfrombasetab_ccs
3.有几个参数用于控制COPY命令如何从一个表向另一个表中拷贝数据。
这些参数如下所示:
1)如果目标表存在,APPEND将查询出的记录插入到目标表。
如果目标表不存在,COPY命令创建该表。
即使该表为空(不含数据),APPEND命令也插入记录。
2)CREATE首先创建目标表,然后向目标表中插入取自查询的记录。
如果目标表已经存在,COPY命令返回一个错误。
3)INSERT将取自查询的记录插入目标表。
如果目标表不存在,COPY命令返回一个错误。
当使用INSERT命令时,USING查询必须为目标表中的每列选择一列。
4)REPLACE使用查询提取的记录替换目标表及其内容。
如果目标表存在,COPY删除它并用含有拷贝数据的表替换它。
如果目标表不存在COPY命令创建它。
1.4在SQL*Plus中把查询结果输出到文件中
1.使用下面的方法,可以把SQL*Plus中查询到的结果输出到文件中
SQL>setheadingoff
SQL>setlinesize32767
SQL>setcolsep"|"
SQL>setpagesize0
SQL>settrimspoolon
SQL>setfeedbackoff
SQL>setechooff
SQL>spoolbasetab_ccs.unl
SQL>select*frombasetab_ccs;
10000|5000|1234
10001|5000|1234
SQL>spooloff
SQL>quit
执行后,得到basetab_ccs.sql文件的内容如下:
10000|5000|1234
10001|5000|1234
对文件稍处理,就能实现把Oracle数据倒出为informix格式的文本文件的。
2.参数说明
1)SETHEADINGOFF关闭头信息显示。
2)SETLINESIZE32767设置页宽为最大值。
3)SETCOLSEP“|”设置字段分隔符。
4)SETPAGESIZE0关闭全部页格式化信息,例如列标题、标题、起始空白行、分页符等等。
5)THEADINGOFF关闭列标题显示(你可以使用SETHEADINGOFF或SETPAGESIZE0实现)。
6)TFEEDBACKOFF隐藏查询返回的记录号。
7)VERIFYOFF不在SQL*Plus使用实际值替换变量的前后显示SQL命令的文本。
8)SETECHOOFF可以在文件执行时,隐藏basetab_ccs.unl文件中的SQL命令清单。
9)SPOOLbasetab_ccs.unl开始将在SQL*Plus提示符下输入的命令查询结果保存入名为basetab_ccs.unl的文件中。
命令和查询结果继续在终端上显示。
如果没有指明一个文件扩展名,SQL*Plus为输出文件使用缺省的扩展名(.lst或.lis)。
10)SPOOLOFF停止保存并关闭basetab_ccs.unl文件。
1.5使用SQL*Plus执行文件中的SQL语句
如果还没有进入SQL*Plus,可以使用以下命令执行文件中的sql语句
D:
\>sqlplus–Susername/passwd@service_name@SqlFileName
如果已经进入SQL*Plus,可以直接输入@SqlFileName来执行文件中的sql语句。
SQL>@SqlFileName
1.6在SQL*Plus中启动和关闭Oracle数据库
1.启动数据库:
sqlplus"/assysdba“
SQL>startup
2.关闭数据库:
sqlplus"/assysdba“
SQL>shutdownimmediate
1.7在SQL*Plus中创建和删除用户
1.创建用户:
SQL>createuserdywaidentifiedbydywa;
用户已创建
SQL>grantconnect,resourcetodywa;
授权成功。
SQL>
identifyedby后面是用户的密码。
2.删除用户:
SQL>dropuserdywa;
用户已丢弃
如果用户已经拥有对象,那么需要使用下面语句删除用户:
SQL>dropuserdywacascade;
用户已丢弃
第2章
exp和imp介绍
2.1导出工具exp
1.简介
exp是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin。
Exp能够将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移。
它有三种模式:
1)用户模式:
导出用户所有对象以及对象中的数据;
2)表模式:
导出用户所有表或者指定的表;
3)整个数据库:
导出数据库中所有对象。
2.使用说明
常用方法如下:
D:
\>expusername/password@service_nametables=(table1,table2,…)file=filename
输入exphelp=true可以取得以下帮助
D:
\>exphelp=true
Export:
Release9.2.0.1.0-Productionon星期三7月2820:
36:
572004
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
通过输入EXP命令和用户名/口令,您可以
后接用户名/口令的命令:
例程:
EXPSCOTT/TIGER
或者,您也可以通过输入跟有各种参数的EXP命令来控制“导出”
按照不同参数。
要指定参数,您可以使用关键字:
格式:
EXPKEYWORD=value或KEYWORD=(value1,value2,...,valueN)
例程:
EXPSCOTT/TIGERGRANTS=YTABLES=(EMP,DEPT,MGR)
或TABLES=(T1:
P1,T1:
P2),如果T1是分区表
USERID必须是命令行中的第一个参数。
关键字说明(默认)关键字说明(默认)
--------------------------------------------------------------------------
USERID用户名/口令FULL导出整个文件(N)
BUFFER数据缓冲区大小OWNER所有者用户名列表
FILE输出文件(EXPDAT.DMP)TABLES表名称列表
COMPRESS导入到一个区(Y)RECORDLENGTHIO记录的长度
GRANTS导出权限(Y)INCTYPE增量导出类型
INDEXES导出索引(Y)RECORD跟踪增量导出(Y)
DIRECT直接路径(N)TRIGGERS导出触发器(Y)
LOG屏幕输出的日志文件STATISTICS分析对象(ESTIMATE)
ROWS导出数据行(Y)PARFILE参数文件名
CONSISTENT交叉表的一致性(N)CONSTRAINTS导出的约束条件(Y)
OBJECT_CONSISTENT只在对象导出期间设置为读的事务处理(N)
FEEDBACK每x行的显示进度(0)
FILESIZE每个转储文件的最大大小
FLASHBACK_SCN用于将会话快照设置回以前状态的SCN
FLASHBACK_TIME用于获取最接近指定时间的SCN的时间
QUERY用于导出表的子集的select子句
RESUMABLE遇到与空格相关的错误时挂起(N)
RESUMABLE_NAME用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUTRESUMABLE的等待时间
TTS_FULL_CHECK对TTS执行完整的或部分相关性检查
TABLESPACES要导出的表空间列表
TRANSPORT_TABLESPACE导出可传输的表空间元数据(N)
TEMPLATE调用iAS模式导出的模板名
在没有警告的情况下成功终止导出。
3.导出工具exp交互式命令行方式的使用的例子
D:
\>expsunljh/sunljh@E3000
Export:
Release9.2.0.1.0-Productionon星期三7月2820:
18:
072004
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
连接到:
Oracle9iEnterpriseEditionRelease9.2.0.1.0-Production
WiththeOLAPandOracleDataMiningoptions
JServerRelease9.2.0.1.0-Production
输入数组提取缓冲区大小:
4096>(回车)
导出文件:
EXPDAT.DMP>base.dmp
(1)E(完整的数据库),
(2)U(用户)或(3)T(表):
(2)U>3
导出表数据(yes/no):
yes>yes(回车)
压缩区(yes/no):
yes>yes(回车)
已导出ZHS16GBK字符集和AL16UTF16NCHAR字符集
即将导出指定的表通过常规路径...
要导出的表(T)或分区(T:
P):
(RETURN以退出)>basetab_ccs(回车)
..正在导出表BASETAB_CCS10行被导出
要导出的表(T)或分区(T:
P):
(RETURN以退出)>(回车)
在没有警告的情况下成功终止导出。
D:
\>
4.导出工具exp非交互式命令行方式的例子
实例1:
把sunljh用户里两个表basetab_ccs,test导出到文件c:
\sunljh.dmp。
D:
\>expsunljh/sunljh@E3000tables=(basetab_ccs,test)file=c:
\sunljh.dmpgrants=y
实例2:
在basetab_ccs里面加上导出basetab_ccs的查询条件saccountnumber='10000'。
D:
\>expsunljh/sunljh@E3000tables=basetab_ccsquery=\"wheresaccountnumber=\'10000\'\"file=c:
\sunljh2.dmp
实例3:
sunljh.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改
D:
\>expparfile=sunljh.parfile=c:
\sunljh_1.dmp,c:
\sunljh_2.dmpfilesize=2000Mlog=c:
\sunljh_exp.log
参数文件sunljh.par内容
userid=sunljh/sunljh@E3000
buffer=8192000
compress=n
grants=y
filesize指定生成的二进制备份文件的最大字节数。
例子中如果文件sunljh_1.dmp大于2000M,那么剩下的数据会放到另外一个文件sunljh_2.dmp中。
这种方式可用来解决某些OS下2G物理文件的限制及加快压缩速度,也方便刻历史数据光盘等。
实例4:
导出整个数据库,需要使用dba用户登陆
D:
\>expsystem/system@ora9full=truefile=database.dmp
2.2导入工具imp
1.简介
imp是操作系统下一个可执行的文件存放在目录/ORACLE_HOME/bin。
imp可以将exp形成的二进制系统文件导入到数据库中。
它有三种模式:
1)用户模式:
导出用户所有对象以及对象中的数据;
2)表模式:
导出用户所有表或者指定的表;
3)整个数据库:
导出数据库中所有对象。
只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入。
imp执行的步骤如下:
1)createtable
2)insertdata
3)createindex
4)createtriggers,constraints
2.使用说明
输入exphelp=true可以取得以下帮助
D:
\>imphelp=true
Import:
Release9.2.0.1.0-Productionon星期三7月2821:
06:
022004
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
可以通过输入IMP命令和您的用户名/口令
后接用户名/口令的命令:
例程:
IMPSCOTT/TIGER
或者,可以通过输入IMP命令和各种参数来控制“导入”
按照不同参数。
要指定参数,您可以使用关键字:
格式:
IMPKEYWORD=value或KEYWORD=(value1,value2,...,vlaueN)
例程:
IMPSCOTT/TIGERIGNORE=YTABLES=(EMP,DEPT)FULL=N
或TABLES=(T1:
P1,T1:
P2),如果T1是分区表
USERID必须是命令行中的第一个参数。
关键字说明(默认)关键字说明(默认)
--------------------------------------------------------------------------
USERID用户名/口令FULL导入整个文件(N)
BUFFER数据缓冲区大小FROMUSER所有人用户名列表
FILE输入文件(EXPDAT.DMP)TOUSER用户名列表
SHOW只列出文件内容(N)TABLES表名列表
IGNORE忽略创建错误(N)RECORDLENGTHIO记录的长度
GRANTS导入权限(Y)INCTYPE增量导入类型
INDEXES导入索引(Y)COMMIT提交数组插入(N)
ROWS导入数据行(Y)PARFILE参数文件名
LOG屏幕输出的日志文件CONSTRAINTS导入限制(Y)
DESTROY覆盖表空间数据文件(N)
INDEXFILE将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES跳过不可用索引的维护(N)
FEEDBACK每x行显示进度(0)
TOID_NOVALIDATE跳过指定类型ID的验证
FILESIZE每个转储文件的最大大小
STATISTICS始终导入预计算的统计信息
RESUMABLE在遇到有关空间的错误时挂起(N)
RESUMABLE_NAME用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUTRESUMABLE的等待时间
COMPILE编译过程,程序包和函数(Y)
STREAMS_CONFIGURATION导入Streams的一般元数据(Y)
STREAMS_INSTANITATION导入Streams的实例化元数据(N)
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE导入可传输的表空间元数据(N)
TABLESPACES将要传输到数据库的表空间
DATAFILES将要传输到数据库的数据文件
TTS_OWNERS拥有可传输表空间集中数据的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 系列 培训教材 常用工具