您的位置:首页 > 数据库

SQL*PLUS与服务管理器、导入imp导出exp

2008-01-02 11:32 253 查看
SQL*PLUS与服务管理器
注释行 前面加REM或--
SQL*PLUS不允许空白行 可以设置SET SQLBLANKLINES ON
替代变量& 可以用SET DEFINE OFF 关闭替代变量
继续字符-
结束符;或/
行编辑命令:L (n m)列出缓冲区的n至m行
C/x/y 把一行中第一次出现的x换成y
DEL (n m) 删除缓冲区的n至m行
I 在当前行下插入一个新行
A 在当前行的末尾附加文本
SAVE D:/A.SQL (REPLACE) 保存文件
GET D:/A.SQL 装入缓冲区
生成报表用COLUMN,TTITLE,BTITLE和SPOOL完成
COLUMN columnname [HEADING headingtext] --标题如果有两行用|分割
[FORMAT 格式][WORD_WRAPPED|TRUNCATED] --WORD_WRAPPED隐藏文本,TRUNCATED截断
如:COLUMN MARKINGGS_DESCRIPTION FORMAT A10 WORD_WRAP --则MARKINGGS_DESCRIPTION将会被隐藏10位以后的变成MARKINGGS_D
用TTITLE创建页眉或主题 SKIP 空行跳过 日期得用SQL语句得到
SPOOL filename将报表写入文件,通常是.lst或 .lis,用SPOOL OFF终止操作.
BRE[AK] [ON report_element[action]....] 总结和中断报表
如:break on zbdm00 noduplicates skip 1 删除列中的重复值
COMP[UTE] [function [LABEL] text OF expression|column|alias ON expression|column|alias|REPORT|ROW] 总结报表
如:COMPUTE COUNT OF ID_NO ON REPORT --算出整个报表的总记录数
COMPUTE COUNT OF ID_NO ON C_NAME --算出每个C_NAME的记录数
定义替代变量 DEF[INE] [variable=text]
用双&符变量表示不必为同一个变量提示两次.
用@引用一个脚本文件.可以用SQLPLUS USERNAME/PASSWORD[@SERVIECE] @SCRIPT_FILE [变量(替代&1等)] 进行批处理

导出EXP
帮助C:/>EXP HELP=Y
EXP [username[/password[@service]]]要使用EXP,用户必须拥有CREATE SESSION权限,只能执行自己所属的对象,而拥有EXP_FULL_DATABASE角色则可以导出任何事情.
FULL=Y 可以导出一个完整的数据库. 用ROWS=N 则只导出定义不是数据.
导出用户: owner=(user1,user2...) 但不能得到同义词,可CREATE PUBLIC SYNONMY创建.
导出表: TABLES=table,TABLES=(tablename,tablename...)
估计导出文件的大小:
查询DBA_SEGMENTS视图:select sum(bytes) from dba_segments where segment_typ='TABLE' 查询全部表的总字节数.
导出路径:普通导出和直接路径导出(用DIRECT=Y,绕过对独立行的估计,较快,用QUERY时或LOB列时不能使用)
压缩范围:COMPRESS=Y,将把表的若干个小范围重组成一个大范围,如果大表的容量比自由空间还大,则COMPRESEE=N
导出表的子集:用QUERY,如:EXP SYSTEM/MANAGER QUERY='WHERE ZTDM00=''1111''' TABLES=hsg4_jh.gstjygl0 FILE=AA LOG=AA
用多个分割文件导出:如:exp system/manager file=(pay_1,pay_2,pay_3) log=pay,filesize=1g tables=hsg4_jh.gstjygl0,这将导出3个1G的文件
使用参数文件.PAR,可以存 FIEL=AA LOG=AA TABLES=(AA,,,....) 等,导出的时候用exp system/manager parfile=aa.par

导入IMP
帮助C:/>IMP HELP=Y
IMP [username[/password[@service]]]要使用IMP,用户必须拥有CREATE SESSION权限,只能执行自己所属的对象,而拥有IMP_FULL_DATABASE角色则可以导入任何事情.
FULL=Y 可以导入一个完整的数据库. 用IGNORE=Y忽略错误信息
导入用户: FROMUSER=(username,username...),在导入用户前必须创建指定的用户,一定要得到基于导入对象的用户的CREATE权限的认可.
将一个用户数据导入另一个用户:FROMUSER=(username,username...) TOUSER=(username,username...),FROMUSER中如果在TOUSER中没有对应的用户将默认为本用户.这种方法通常用来复制模式的备份.
导出表: TABLES=table,TABLES=(tablename,tablename...),但不能用TABLES=HSG4.AA,要FROMUSER=HSG4 TABLES=AA
使用导入选项
忽略创建错误:IGNORE=Y,如表已经创建,忽略错误将继续插入表数据,如果没有忽略这个表将跳过去而没有数据
生成CREATE INDEX语句:用INDEXFILE参数运行IMP:imp system/manager@xsgs indexfile=aa_indexes.sql fromuser=hsg4 file=aa log=aa
这样将导出一个aa_indexes.sql的创建索引的文件,然后运行IMP,用IGNORE=Y和INDEXES=N,将数据装入已创建的没有索引的表,最后运行aa_indexes.sql脚本创建索引.
用多个分割文件导入:如:IMP system/manager@XSGS file=(pay_1,pay_2,pay_3) FULL=Y,filesize=1g
使用参数文件.PAR,可以存 FIEL=AA LOG=AA TABLES=(AA,,,....) 等,导入的时候用IMP system/manager parfile=aa.par
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: