Oracle 19c中Imp命令无法使用的替代方案咨询
解决Oracle 19c客户端无
imp命令的替代方案 无需重装旧客户端的替代方法:改用impdp(数据泵导入)
从Oracle 12c开始,传统的imp旧版导入工具已被官方弃用,19c客户端默认不再包含该工具,官方推荐使用impdp(Oracle Data Pump Import,数据泵导入)作为替代,这是功能更完善的新一代导入工具,且兼容高版本数据库。
步骤1:将旧imp命令转换为impdp命令
你的旧imp命令:
imp dbname/password@%DB_VAR% fromuser=user1 touser=user1 tables=(table_1,table_1_x) file=tables_1.dmp ignore=y
对应的impdp命令示例:
impdp dbname/password@%DB_VAR% schemas=user1 tables=table_1,table_1_x dumpfile=tables_1.dmp remap_schema=user1:user1 table_exists_action=append
参数对应说明
fromuser=user1 touser=user1→ 对应remap_schema=user1:user1(若源与目标用户一致,也可直接使用schemas=user1)ignore=y→ 对应table_exists_action=append(可根据需求替换为replace替换表、skip跳过已存在表)file=tables_1.dmp→ 对应dumpfile=tables_1.dmp
关键注意事项
impdp依赖数据库端的目录对象,需先完成配置:- 以DBA身份登录数据库执行:
CREATE DIRECTORY dump_dir AS 'C:\你的dump文件存放路径'; -- 替换为实际文件路径 GRANT READ, WRITE ON DIRECTORY dump_dir TO dbname; -- 替换为你的操作用户名 - 执行
impdp时需指定directory参数:impdp dbname/password@%DB_VAR% schemas=user1 tables=table_1,table_1_x dumpfile=tables_1.dmp directory=dump_dir table_exists_action=append
- 以DBA身份登录数据库执行:
- 若
tables_1.dmp是旧版exp导出的文件,impdp仍可兼容导入,只需确保文件路径被数据库目录对象覆盖。
是否需要重装Oracle 11客户端?
不需要。除非你有必须依赖imp的特殊场景(如旧脚本无法修改),否则优先使用官方推荐的impdp工具。若确实需要保留imp,可安装Oracle 11g客户端的**即时客户端(Instant Client)**版本,仅需下载包含imp.exe的压缩包,解压后将路径添加至系统PATH即可,无需完整安装,不会与19c客户端产生冲突。
内容的提问来源于stack exchange,提问作者jimbo
相关产品推荐
相关产品推荐

