** Oracle数据库中进行数据的导入导出时要在cmd中进行而不是在sqlplus中进行操作!
(1)向oracle数据库中导入完整的数据库(后缀名:dmp)
首先进入cmd,输入sqlplus /nolog运行oracle自带程序,然后输入conn /as sysdba,以数据库管理员(dba)的身份链接到后台数据库 ,也就是进入数据库创建表空间,创建用户并将这个表空间授权给这个用户,并且给这个用户授予dba,connect ,resource 等权限,在退出早cmd或重新打开窗口倒cmd进行imp 命令导入。
step1: 建立临时表空间(取名为:libsys_temp)
create temporary tablespacelibsys_temp
tempfile 'D:\oracle\libsys_temp.dbf' // 指定空间存放路径
size 1000M //为临时表空间分配磁盘空间
autoextend on next 10M
maxsize 2048M //若存入的数据量超过了分配的空间大小,
//则以每次新增10M的大小增大表间,但最大为2048M,
// 而也可以使用unlimited 没有最大值的限制。
extent management local; //设置表空间的区管理为本地管理,为的是减少分配extent的时
//候产生的内部递归sql,提高数据库分配空间的效率.
step2: 建立数据表空间,用于存储导入的数据库中的所有数据(取名:libsys_data)
create tablespace libsys_data
logging //指明导入过程记入日志中
datafile 'D:\oracle\libsys_ data.dbf' //指定数据库保存的路径
size 10240M //注意表空间应足够大,否则导入将出错!
autoextend on
next 100M maxsize 20480M
extent management local;
step3: 创建用户并指定表空间(需拥有dba权限)
createuser libsys identified by abc123 //设置用户名:libsys,码:abc123.
default tablespace libsys _data //为用户指定刚刚建立的表空间libsys_data, 以便保存与此用户相关的所有数据.
temporary tablespace libsys_temp; //为用户指定临时表空间libsys_temp, 以提高数据库运行效率.
step4: 给用户授权(需授予dba,connect和resource三个权限,否则无法完成数据库导入)
grant dba,connect,resource to libsys ;
step5: 将拷贝来的完整的数据库文件(此处为:'libsys.dmp')导入到自己机器中的oracle数据库中
imp libsys/abc123 file='D:\libsys.dmp' full=y ignore=y;
//full=y表示全部导入,ignore=y表示忽略数据库中已存在的表,否则可能出错。如果有数据则不会更改而 如果没有则会进行修改。
(特别注意:在进行step5之前,需要输入“exit”命令退出并返回到'cmd'命令后,才能做导入导出操作!!!!)
另外:若只想将数据库dmp文件中的部分表(此处为:item表)导入,则只需加上表名即可,方法如下:
imp libsys/abc123file='D:\libsys.dmp' tables=(item); //其中的item为libsys.dmp数据库文件中的一张表对象.
(2)将oracle数据库中的数据导出
A. 导出完整的数据库(此处数据库为:libsys_data):
exp libsys/abc123 file='D:\oracle\libsys.dmp' full=y; //full=y表示全部导出.
B. 将指定用户的数据表导出(此处为:用户xdw和用户newuser):
explibsys/abc123 file='D:\oracle\libsys.dmp' owner=(xdw,newuser);
C.导出指定的数据库中的表(此处为:student表和teacher表):
exp libsys/abc123 file='D:\oracle\libsys.dmp' tables=(student,teacher);
D.导出数据库中表的指定字段(此处为:学生姓名中的姓为"王")的数据(此处为:student表):
exp libsys/abc123 file='D:\oracle\libsys.dmp' tables=(student) query=\"where studentNamelike '王%'\";