我正在尝试将数据库从 迁移SQL Server
到Oracle
,为此我Oracle SQL Developer
按照以下
Oracle 教程的建议使用,其中包含以下部分:
- 联系:
- 1.安装Oracle SQL Developer
- 2. 创建和配置迁移仓库:
a) 分配权限:Grant connect, resource, create session, create view to migration_repo identified by migration_repo;
b) 连接到创建的存储库:
Nombre de Conexión: migration_repo
Usuario: migration_repo
Contraseña: migration_repo
SID: MYSID_ORACLE
C) Associate Repository:Tools/Migration/Repository Management/Create Repository,选择“ migration_repo
”
- 3.连接第三方数据库
- 捕获
- 兑换
- 转让
- 扳机
- 移动数据
我按照上述步骤操作,但在传输部分结束时出现以下错误:
错误:
<message>Error:ORA-06550: línea 1, columna 14:
PLS-00201: el identificador 'SS2K5ALLPLATFORM.STAGECAPTURE' se debe declarar
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored
: FAILED : Migración de Base de Datos : FAILED</message>
完整的日志信息:
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<log>
<record>
<date>2016-06-01T16:48:18</date>
<logger>oracle.dbtools.migration.workbench.core.MigrationLogResourceBundle</logger>
<level>SEVERE</level>
<class>oracle.dbtools.migration.workbench.core.logging.MigrationLogUtil</class>
<message>Capture
Enterprise Capture
Capture failed. Refer to MIGRLOG table in the repository for details</message>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doOnlineEnterpriseCapture(FullMigrateTask.java:758)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doCapture(FullMigrateTask.java:601)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doMaskBasedActions(FullMigrateTask.java:400)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doWork(FullMigrateTask.java:314)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doWork(FullMigrateTask.java:147)</param>
<param>oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)</param>
<param>java.util.concurrent.FutureTask.run(FutureTask.java:266)</param>
<param>oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:621)</param>
<param>java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)</param>
<param>java.util.concurrent.FutureTask.run(FutureTask.java:266)</param>
<param>java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)</param>
<param>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)</param>
<param>java.lang.Thread.run(Thread.java:745)</param>
<param>oracle.dbtools.migration.workbench.core.logging.LogInfo@572aa33a</param>
<exception>
<message>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask$FullMigrateTaskException: Capture
Enterprise Capture
Capture failed. Refer to MIGRLOG table in the repository for details</message>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>758</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>601</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>400</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>314</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>147</line>
</frame>
<frame>
<class>oracle.dbtools.raptor.backgroundTask.RaptorTask</class>
<line>193</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask</class>
<line>266</line>
</frame>
<frame>
<class>oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask</class>
<line>621</line>
</frame>
<frame>
<class>java.util.concurrent.Executors$RunnableAdapter</class>
<line>511</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask</class>
<line>266</line>
</frame>
<frame>
<class>java.util.concurrent.ThreadPoolExecutor</class>
<line>1142</line>
</frame>
<frame>
<class>java.util.concurrent.ThreadPoolExecutor$Worker</class>
<line>617</line>
</frame>
<frame>
<class>java.lang.Thread</class>
<line>745</line>
</frame>
</exception>
</record>
<record>
<date>2016-06-01T16:48:18</date>
<logger>oracle.dbtools.migration.workbench.core.MigrationLogResourceBundle</logger>
<level>WARNING</level>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<message>Error:ORA-06550: línea 1, columna 14:
PLS-00201: el identificador 'SS2K5ALLPLATFORM.STAGECAPTURE' se debe declarar
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored
: FAILED : Migración de Base de Datos : FAILED</message>
<param>oracle.dbtools.migration.workbench.core.logging.LogInfo@7e8e4394</param>
工具:
- 微软 SQL Server 2012
- 甲骨文 11g V2
- Oracle SQL 开发人员 4.1.3.20.78
- Java(TM) 1.80_60
- jtds-1.2-dist
我不知道这是否是最好的解决方案,但我通过以下步骤解决了这种情况。
Grant ALL PRIVILEGES to migration_repo identified by migration_repo;
我知道这个话题已经结束,但我有一个类似的问题。我正在遵循这些相同的步骤并且迁移成功完成,但它为我创建的表是空的。
我认为我的问题是我正在查看错误的示意图。迁移完成后,我会检查在您的情况下称为“migration_repo”的内容,它没有数据。创建此模式是为了支持迁移,它没有数据是有道理的。但是,将包含数据的模式是什么?我试图在 Oracle 数据库中以 SYS 身份连接,并对没有数据的表进行选择计数(*)。
谢谢和问候