一、利用Windows自带的命令行导入(推荐)
注意:这种方式需要用到oracle客户端,在cmd窗口执行代码,如果没有配置环境变量,需要进入oracle客户端的安装目录中执行,下面会介绍详细方式
1、以管理员方式登录plSQL
注意:oracle数据库的管理员账户一般为sys,忘记登录密码,不知道如何登录,的请查看下面这个链接有详细服务器端修改密码方式: https://blog.csdn.net/weixin_47055922/article/details/1090474192、在管理员模式下新建“SQL窗口”用于执行sql语句
3、利用代码创建表空间及分配用户
注意:第一句是创建用户名和密码都是test01_200的数据库,test01_200可以自定义,下面的语句是对该数据库创建表空间以及给用户,进行赋权处理Create user test01_200 identified by test01_200 Default tablespace users Temporary tablespace temp password expire; grant dba to test01_200; grant resource to test01_200; grant alter any procedure to test01_200; grant create any procedure to test01_200; grant create procedure to test01_200; grant create session to test01_200; grant create table to test01_200; grant create view to test01_200; grant debug any procedure to test01_200; grant debug connect session to test01_200; grant execute any procedure to test01_200; grant unlimited tablespace to test01_200;
4、找到oracle客户端中的imp.exe执行文件
实例:D:\app\Admin\product\11.2.0\client_1\BIN\
5、进入cmd窗口
执行:windows+R ,输入 cmd 点击回车,输入 d: 回车,然后 cd app\Admin\product\11.2.0\client_1\BINC:\Users\Admin>D: D:\>cd app\Admin\product\11.2.0\client_1\BIN
6、输入命令导入dmp文件,
命令格式:imp 用户名/密码@oracle服务器ip/数据库 fromuser=原来的用户名 touser=现在的用户名 file=存储文件目录.dmp full=y ignore=y statistics=none
实例:imp test01_200/test01_200@192.168.200.200/HELOWIN fromuser=bda_elect_js touser=test01_200 file=D:\ bda_test111.dmp full=y ignore=y statistics=none
7、提示导入报错
IMP-00002: 无法打开 D:\.DMP 进行读取 导入文件: EXPDAT.DMP>
解决办法:网上查找资料发现,这个错误一般是路径错误,路径中存在中文居多,我这里检查了好久,“file=D:\”后面有个空格, 删除后,继续运行命令导入
8、再次导入
输入实例:imp test01_200/test01_200@192.168.200.200/HELOWIN fromuser=bda_elect_js touser=test01_200 file=D:\bda_test111.dmp full=y ignore=y statistics=none
9、导入报错:
经由常规路径由 EXPORT:V11.02.00 创建的导出文件 IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件 IMP-00000: 未成功终止导入
解决办法:该错误表示导出数据的用户拥有DBA权限,而我要导入的用户没有这个权限。要解决这个问题解决的办法有两个,一个是把导出的用户DBA权限去掉,重新导出;另一个就是给要导入的用户加上DBA权限啊。这里用第二种方
10、给要导入的用户加上dba权限
实例:我这里是给test01_200这个用户加dba权限,以管理员身份登录,新建sql窗口执行语句,执行代码:grant dba to test01_200;
注意:这个问题是我后面发现的,我将这句命令添加到了步骤3的代码中,如果未出现步骤9这个错误,可以忽略这个问题。11、导入报错
警告: 这些对象由 BDA_ELECT_JS 导出, 而不是当前用户 已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入 导入服务器使用 AL32UTF8 字符集 (可能的字符集转换) IMP-00024: 只能指定一种模式 (TABLES, FROMUSER 或 FULL) IMP-00000: 未成功终止导入
解决方式:查阅资料发现,选择了fromuser 就不能选择full,我在代码中已经定义了fromuser=bda_elect_js,所以需要删除full=y
12、删除full=y之后再次输入命令导入
最终的导入命令:imp test01_200/test01_200@192.168.200.200/HELOWIN fromuser=bda_elect_js touser=test01_200 file=D:\bda_test111.dmp ignore=y statistics=none
13、导入成功
提示:成功终止导入, 没有出现警告。
登录test01_200用户查看表中存在数据。