You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同系统使用SQL Developer迁移SQL Server数据库至Oracle失败

故障排查与解决

触发该报错的核心原因有两点:

  • 执行的授权语句不符合Oracle 19c语法规范,语句实际未执行成功
  • SQL Developer 19.2版本迁移前置校验需要的权限,和旧版本授权逻辑不匹配

修复步骤

  1. 用SYS as SYSDBA身份登录Oracle实例,先清理之前错误配置的用户:
DROP USER MyCon CASCADE;

提示:如果提示用户不存在可忽略该报错,直接执行后续语句。

  1. 按19c规范创建迁移用户并分配表空间权限:
CREATE USER MyCon IDENTIFIED BY "你的连接密码"
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

ALTER USER MyCon QUOTA UNLIMITED ON USERS;

注意:你之前使用的GRANT ALL PRIVILEGES to {migration-name} identified by {migration-name};是Oracle 11g及更早版本的非标准语法,12c及之后版本已彻底废弃,且语句中{migration-name}是占位符,未替换为实际用户名MyCon,这条语句执行会直接报语法错误,根本没有完成授权操作。

  1. 给迁移用户授予SQL Developer迁移所需的全部必要权限,不要仅授予ALL PRIVILEGES(19c中该权限集合不包含数据字典读取、数据泵操作等迁移校验必需的权限):
GRANT CREATE SESSION,
      CONNECT,
      RESOURCE,
      CREATE TABLE,
      CREATE VIEW,
      CREATE SEQUENCE,
      CREATE PROCEDURE,
      CREATE TRIGGER,
      CREATE TYPE,
      CREATE MATERIALIZED VIEW,
      ALTER SESSION,
      SELECT ANY DICTIONARY,
      DATAPUMP_EXP_FULL_DATABASE,
      DATAPUMP_IMP_FULL_DATABASE
TO MyCon;
  1. 打开SQL Developer检查两端连接配置:
  • SQL Server连接确认已启用TCP/IP协议,连接账号对test3库有public读取权限
  • 新建MyCon用户的Oracle连接时,连接角色选择Normal,使用内置的19c版本JDBC驱动,不要手动替换第三方ojdbc包
  • 重新启动迁移向导时,取消勾选"自动创建迁移用户"选项,手动选择已配置好的MyCon连接即可,不会再在密码输入步骤前触发校验报错。

内容的提问来源于stack exchange,提问作者henrry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:32:30