情シスは何度でも甦るさ。

OracleDB/Ruby好きの情シス部員がお送りします

DataPumpでORA-904

既存の開発環境のOracleから、勉強会用の環境にデータを移行しようとした。
DataPumpでスキーマごとデータを丸っと移行。

impdpでエラー発生

ORA-00904: "ORIGINAL_OBJECT_NAME": 無効な識別子です。

検索したら、同じ問題が出てきた。(英語)
https://forums.oracle.com/forums/thread.jspa?threadID=1086254

原因は、
ソースDBとターゲットDBのバージョンが異なってたこと。
11.1.0.7⇒11.1.0.6
で、DataPumpはエラーが出てしまうそうだ(Bug:7590679)

対策方法は、以下の2点

  1. パッチを当てて、ターゲットDBを11.1.0.6⇒11.1.0.7に上げる
  2. version=10.2のオプションを付けてexportを行う

てっとり早くデータ移行したいので、versionオプションで対応

expdp user/pass directory=dpdir dumpfile=expdp version=10.2

うまく移行できました。