impdp 导入单个对象

impdp 是 Oracle 数据泵导入工具,用于将之前使用 expdp 导出的数据和对象导入到数据库中。下面分别介绍导入单个索引和单个包(包含包规范和包体)的语法。

导入单个索引

基本语法

impdp username/password@connect_string \
directory=directory_object \
dumpfile=dumpfile_name \
schemas=schema_name \
tablespaces=tablespace_name \
INCLUDE=INDEX:"= 'index_name'"

参数解释

  • username/password@connect_string:数据库登录信息,username 是用户名,password 是密码,connect_string 是连接字符串。
  • directory=directory_object:指定转储文件所在的目录对象,该对象在数据库中是逻辑上的,对应操作系统的一个物理目录。
  • dumpfile=dumpfile_name:指定要导入的转储文件名。
  • schemas=schema_name:指定要导入对象所属的模式。
  • tablespaces=tablespace_name:指定索引所在的表空间(可选,如果导出文件中已包含表空间信息,可省略)。
  • INCLUDE=INDEX:"= 'index_name'":明确只导入指定名称的索引。

示例

假设:
  • 用户名是 hr,密码是 hrpassword
  • 连接字符串是 ORCLCDB
  • 目录对象是 DATA_PUMP_DIR
  • 转储文件名为 expdp_hr.dmp
  • 模式名是 hr
  • 要导入的索引名为 EMP_EMAIL_UK

命令如下:
impdp hr/hrpassword@ORCLCDB \
directory=DATA_PUMP_DIR \
dumpfile=expdp_hr.dmp \
schemas=hr \
INCLUDE=INDEX:"= 'EMP_EMAIL_UK'"

导入单个包(包含包规范和包体)

基本语法

impdp username/password@connect_string \
directory=directory_object \
dumpfile=dumpfile_name \
schemas=schema_name \
INCLUDE=PACKAGE:"= 'package_name'"

参数解释

与导入索引的参数类似,INCLUDE=PACKAGE:"= 'package_name'" 用于明确只导入指定名称的包。

示例

假设:
  • 用户名是 hr,密码是 hrpassword
  • 连接字符串是 ORCLCDB
  • 目录对象是 DATA_PUMP_DIR
  • 转储文件名为 expdp_hr.dmp
  • 模式名是 hr
  • 要导入的包名为 EMPLOYEE_PACKAGE

命令如下:
impdp hr/hrpassword@ORCLCDB \
directory=DATA_PUMP_DIR \
dumpfile=expdp_hr.dmp \
schemas=hr \
INCLUDE=PACKAGE:"= 'EMPLOYEE_PACKAGE'"

注意事项

  • 确保目录对象已正确创建,并且具有相应的读写权限。
  • 确保转储文件中包含你想要导入的对象。
  • 如果转储文件位于不同的数据库实例,需要保证该实例和目标实例之间的网络连接正常。
  • 对于包的导入,如果只想导入包体,可以使用 INCLUDE=PACKAGE_BODY:"= 'package_name'"

posted on 2025-03-29 15:52  数据与人文  阅读(116)  评论(0)    收藏  举报