在Oracle当中如何才能对数据库的语法进行导入导出呢?其实啊,这有不止一种方法呢。事实上啊,在Oracle当中,不仅可以在Oracle编辑器中用图形化的方式导入导出文理文件的数据方式,而且还可以采用命令行的方式导入导出数据库。
语法示例为:imp[username[/password[@service]]]
(一)步骤
先进入dos,切换到oracle数据库物理文件所在的目录,就是说dmp文件所在的目录。
然后输入下述语句。
impusername/password@servicefile=psmis.dmpfromuser=psmistouser=psmislog=psmis.log
语句的语法解释:
(1)imp:指的是导入数据库的语法前缀;
(2)username/password@service:指的是指定登陆的service;
(3)file:是指已经分离的oracle数据库物理文件;
(4)fromuser:意思是来源用户;
(5)touser:是指目标用户;
(6)log:表示当前目录下的日志文件;
(7)于dos中查看oracle的imp,exp命令:
imphelp=y
exphelp=y
1.导出表数据:
用backup_yyMMddHHmm.dmp表示文件名。
dateString=`date+%y%m%d%H%M`
#echo$dateString
su-oracle-c"expuserid/passwordtables=table1,table2file=path/backup_$dateString.dmpBUFFER=8192grants=ycompress=N"
注释:N指导出的文件不用压缩放在同一个数据块中,数据库当中的表数据特别大时,如果放在不一样的数据库,恢复时会出现问题。导出的数据包括表创建语句、序列以及触发器等。
2.导入表数据
表导入的过程包括创建表、导入数据还有创建序列。
echobackupfile:$1
fileName=$1
echo$fileName
#if["$fileName"=""]
#then
#echo"请指定备份恢复的文件名,请指定绝对文件路径"
#exit0;
#fi
#echofileName=$fileName
su-oracle-c"impuserid/passwordfile=$fileNameshow=nbuffer=2048000ignore=Ycommit=ygrants=yfull=y"
注意:Y指忽略表创建的过程,只把表中的数据导入表中。
(二)在oracle中导入dmp数据库文件
Oracle数据imp/exp,即导入导出就个等于oracle数据还原以及备份。exp命令还能把数据从远程数据库服务器导出到本地的dmp文件,imp命令能将dmp文件从本地导入到远处的数据库服务器中。利用它能构建两个一样的数据库,一个用来测试,一个用来进行正式使用。
执行环境:在SQLPLUS.EXE或DOS中执行,DOS中能够执行是因为在oracle8i中安装目录ora81BIN被设置为全局路径,这个目录下有EXP.EXE与IMP.EXE文件执行导入导出。
用java编写oracle,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类来完成导入导出功能。
(三)导入导出的实例
数据导出:
(1)把数据库TEST全部导出,用户名为system,密码为manager,导出到D:daochu.dmp。
expsystem/manager@TESTfile=d:daochu.dmpfull=y
(2)把数据库中system用户以及sys用户表导出
expsystem/manager@TESTfile=d:daochu.dmpowner=(system,sys)
(3)把数据库的inner_notify以及notify_staff_relat表导出
expaichannel/aichannel@TESTDB2file=d:dataewsmgnt.dmptables=(inner_notify,notify_staff_relat)
(4)以"00"打头把数据库中的表table1中的字段filed1的数据导出
expsystem/manager@TESTfile=d:daochu.dmptables=(table1)query=\\"wherefiled1like'00%'\\"
注意:上面为常用的导出,而用winzip把dmp文件就能很好的压缩,也可以在命令后加上compress=y来实现。
数据的导入
(1)把D:daochu.dmp的数据导入到TEST数据库中。
impsystem/manager@TESTfile=d:daochu.dmp
impaichannel/aichannel@HUSTfull=yfile=file=d:dataewsmgnt.dmpignore=y
以上由于有的表已经存在,然后就报对该表就不进行导入。只要在后面加上ignore=y就可以。
(2)把d:daochu.dmp中的表table1导入
impsystem/manager@TESTfile=d:daochu.dmptables=(table1)
不少情况是先要把表彻底删除,然后再进行导入。以上的导入导出基本够用了。
注意:权限不够会有提示,操作者要有足够的权限。数据库可以连上,也能用tnspingTEST来知道数据库TEST能否连上。
总结:小编今天就把关于Oracl导入导出数据库的语法全都介绍完了,小编相信大家通过本文的学习,以后再遇到涉及到Oracle导入导出的问题能够轻松解决,希望能够帮助到大家。小编将会不断的给大家更新资讯,大家可以关注我们课课家教育网站来获取最新资讯。
上一篇:mysql当中的内存查询详解
下一篇:oracle数据类型详解
¥29.90
¥48.00¥180.00
¥199.00
¥199.00
¥48.00¥180.00
¥798.00