m0_51992982 2023-10-15 01:14 采纳率: 0%
浏览 8
已结题

Oracle 数据泵导出导入问题🙋‍♀️

求解oracle( 19版本)用数据泵导出数据,且导出时用语句指定了用11版本导入,在用11版本还原时候,出现某张表表导入错误,原因为标识符过长,请你问怎样可以解决?

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-15 01:15
    关注
    获得0.60元问题酬金

    引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。


    在Oracle数据库中,表的标识符(表名、列名等)的长度有限制,根据Oracle版本的不同,标识符的最大长度也不同。在Oracle 11g版本中,标识符的最大长度为30个字符。

    如果你使用Oracle 19版本导出了数据,并且特意指定了使用Oracle 11版本导入时,如果导入时某张表的标识符过长导致错误,有以下几种解决方法:

    1. 修改表结构:在导出数据之前,修改表名和列名的长度,将其缩短至30个字符以内。这样在导入时就不会出现标识符过长的问题了。

    2. 使用Oracle 12c或以上版本导入:在Oracle 12c版本中,标识符的最大长度增加到了128个字符。如果你使用Oracle 12c或以上版本,在导入数据时就不会出现标识符过长的问题。

    3. 使用REMAPPING选项重新导入数据:如果表的标识符在导出时无法修改,你可以使用数据泵导出时的REMAPPING选项,将表名和列名缩短至30个字符以内,并导入到11版本数据库中。

    下面是使用REMAPPING选项的示例命令:

    impdp username/password@dbname directory=dpump_dir1 dumpfile=expdp.dmp remap_schema=original_schema:new_schema remap_tablespace=original_tablespace:new_tablespace remap_datafile=original_datafile:new_datafile remap_table=original_table:new_table
    

    在上述命令中,将original_schema替换为你导出数据的原始模式名,将new_schema替换为新的模式名。将original_table替换为包含过长表名的原始表名,将new_table替换为缩短后的表名。

    使用REMAPPING选项重新导入数据时,需要注意保持数据的一致性和正确性,以避免数据损失或冲突。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 创建了问题 10月15日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀