plsql表的导入导出

plsql表的导入导出

ID:34725370

大小:200.48 KB

页数:9页

时间:2019-03-10

上传者:U-25918
plsql表的导入导出_第1页
plsql表的导入导出_第2页
plsql表的导入导出_第3页
plsql表的导入导出_第4页
plsql表的导入导出_第5页
资源描述:

《plsql表的导入导出》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

数据导出:1将数据库TEST完全导出,用户名system密码manager导出到D:daochu.dmp中expsystem/manager@TESTfile=d:daochu.dmpfull=yexpsystem/manager@TESTfile=d:daochu.dmpfull=ystatistics=none(不导出问题统计信息)expsystem/manager@TESTfile=d:daochu.dmp(full=y)statistics=none(不导出问题统计信息)2将数据库中system用户与sys用户的表导出expsystem/manager@TESTfile=d:daochu.dmpowner=(system,sys)3将数据库中的表inner_notify、notify_staff_relat导出expaichannel/aichannel@TESTDB2file=d:datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)4将数据库中的表table1中的字段filed1以"00"打头的数据导出expsystem/manager@TESTfile=d:daochu.dmptables=(table1)query="wherefiled1like'00%'"上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。也可以在上面命令后面加上compress=y来实现。数据的导入1将D:daochu.dmp中的数据导入TEST数据库中。impsystem/manager@TESTfile=d:daochu.dmpimpaichannel/aichannel@TESTfull=yfile=d:datanewsmgnt.dmpignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上ignore=y就可以了。2将d:daochu.dmp中的表table1导入impsystem/manager@TESTfile=d:daochu.dmptables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。注意:操作者要有足够的权限,权限不够它会提示。数据库时可以连上的。可以用tnspingTEST来获得数据库TEST能否连上。附录一:给用户增加导入数据权限的操作第一,启动sql*puls第二,以system/manager登陆第三,createuser用户名IDENTIFIEDBY密码(如果已经创建过用户,这步可以省略)第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATESESSIONTO用户名字第五,运行-cmd-进入dmp文件所在的目录,impuserid=system/managerfull=yfile=*.dmp或者impuserid=system/managerfull=yfile=filename.dmp执行示例:F:WorkOracle_Databackup>impuserid=test/testfull=yfile=inner_notify.dmp屏幕显示Import:Release8.1.7.0.0-Productionon星期四2月1616:50:052006(c)Copyright2000OracleCorporation.Allrightsreserved.连接到:Oracle8iEnterpriseEditionRelease8.1.7.0.0-ProductionWiththePartitioningoptionJServerRelease8.1.7.0.0-Production经由常规路径导出由EXPORT:V08.01.07创建的文件 已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入导出服务器使用UTF8NCHAR字符集(可能的ncharset转换).正在将AICHANNEL的对象导入到AICHANNEL..正在导入表"INNER_NOTIFY"4行被导入准备启用约束条件...成功终止导入,但出现警告。附录二:Oracle不允许直接改变表的拥有者,利用Export/Import可以达到这一目的.先建立import9.par,然后,使用时命令如下:impparfile=/filepath/import9.par例import9.par内容如下:FROMUSER=TGPMSTOUSER=TGPMS2(注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)ROWS=YINDEXES=YGRANTS=YCONSTRAINTS=YBUFFER=409600file==/backup/ctgpc_20030623.dmplog==/backup/import_20030623.log在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标New: exp/imp已经很好用了,但是唯一的确定是速度太慢,如果1张表的数据有个百千万的,常常导入导出就长时间停在这个表这,但是从Oracle10g开始提供了称为数据泵新的工具expdp/impdp,它为Oracle数据提供高速并行及大数据的迁移。imp/exp可以在客户端调用,但是expdp/impdp只能在服务端,因为在使用expdp/impdp以前需要在数据库中创建一个Directorycreatedirectorydump_testas'/u01/oracle10g';grantread,writeondirectorydump_testtopiner然后就可以开始导入导出expdppiner/pinerdirectory=dump_testdumpfile=user.dmp导出用户的数据expdppiner/pinerdirectory=dump_testdumpfile=table.dmptables=test1,test2导出表数据impdppiner/pinerdirectory=dump_testdumpfile=user.dmp导入该用户数据impdppiner/pinerdirectory=dump_testdumpfile=table.dmp导出表数据oracle数据库exp不是内部命令或外部命令··|·浏览:811·|·更新:2014-01-1311:28·1 ·2·3·4分步阅读oracle数据库导出时,输入exp指令后,结果显示exp不是内部命令或外部命令。出现这个问题的原因是系统找不到exp.exe程序,也就是没有给系统变量配置exp.exe的路径。所以解决办法就是将exp.exe的路径配置到系统变量path中就可以啦。步骤阅读方法/步骤1.1在windows环境变量下,配置path系统变量。右击“我的电脑”—>“高级”—>“环境变量”—>“系统变量”—>path;然后添加";oracle导入导出命令所在的目录"这样就好了;oracle导入导出命令所在的目录:bin下面哦。我的配置是这样的:D:oracleproduct11.2.0dbhome_1BIN; 步骤阅读步骤阅读1.2配置完成后,测试一下,看一下绝对ok啦。步骤阅读END 注意事项·配置系统变量path时,注意是"分号结尾"哦,不然会错哦当遇到不能导出空表的情况:http://www.2cto.com/database/201203/125469.html在oracle11gr2中,发现传统的exp居然不能导出空的表,然后查询一下,发现需要如下的步骤去搞,笔记之。oracle11g新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true。具体是什么意思呢?如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间。这样可以节省少量的空间。解决办法1设置deferred_segment_creation参数为FALSE后,无论是空表还是非空表,都分配segment。在sqlplus中,执行如下命令:SQL>altersystemsetdeferred_segment_creation=false;数据库对新建的空表分配空间数据库默认的是segment_creation=true;查看:SQL>showparameterdeferred_segment_creation;该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用。注意并且要重新启动数据库,让参数生效2使用ALLOCATEEXTENT的说明使用ALLOCATEEXTENT可以为数据库对象分配Extent。其语法如下:-----------ALLOCATEEXTENT{SIZEinteger[K|M]|DATAFILE'filename'|INSTANCEinteger}-----------可以针对数据表、索引、物化视图等手工分配Extent。ALLOCATEEXTENT使用样例:ALLOCATEEXTENTALLOCATEEXTENT(SIZEinteger[K|M]) ALLOCATEEXTENT(DATAFILE'filename')ALLOCATEEXTENT(INSTANCEinteger)www.2cto.comALLOCATEEXTENT(SIZEinteger[K|M]DATAFILE'filename')ALLOCATEEXTENT(SIZEinteger[K|M]INSTANCEinteger)针对数据表操作的完整语法如下:-----------ALTERTABLE[schema.]table_nameALLOCATEEXTENT[({SIZEinteger[K|M]|DATAFILE'filename'|INSTANCEinteger})]-----------故,需要构建如下样子简单的SQL命令:-----------altertableaTabelNameallocateextent-----------3.2构建对空表分配空间的SQL命令,查询当前用户下的所有空表(一个用户最好对应一个默认表空间)。命令如下:-----------SQL>selecttable_namefromuser_tableswhereNUM_ROWS=0;-----------根据上述查询,可以构建针对空表分配空间的命令语句,如下:-----------SQL>Select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=0-----------批量输出上述生成的SQL语句,建立C:createsql.sql,其内容如下:-----------setheadingoff;setechooff;setfeedbackoff;settermouton;spoolC:allocate.sql;Select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=0;spooloff;www.2cto.com -----------执行C:createsql.sql,命令如下:-----------SQL>@C:createsql.sql;-----------执行完毕后,得到C:allocate.sql文件。打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句。3.4执行SQL命令,对空表分配空间:执行C:allocate.sql,命令如下:-----------SQL>@C:allocate.sql;-----------执行完毕,表已更改。3.4此时执行exp命令,即可把包括空表在内的所有表,正常导出。http://blog.sina.com.cn/s/blog_5f0e9ca50101it7n.html三步(第2步可省)1.SQL>altersystemsetdeferred_segment_creation=false;2.SQL>selecttable_namefromuser_tableswhereNUM_ROWS=0;3.SQL>Select'altertable'||table_name||'allocateextent;'fromuser_tableswherenum_rows=01、2、3执行完之后再执行2,仍然会查出空表但是可以导出空表了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭