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

SQL Server迁移Oracle后,如何移除用户名/模式名中的数据库名?

解决SQL Developer迁移SQL Server到Oracle时模式名带数据库后缀的问题

迁移前配置调整(最优方案)

在启动迁移流程前,通过修改SQL Developer的模式映射规则,直接指定目标Oracle模式名:

  • 打开SQL Developer的数据库迁移向导,进入「迁移项目配置」步骤
  • 找到**模式映射(Schema Mapping)**设置模块
  • 在映射列表中定位源SQL Server的schmdw模式,将默认生成的目标Oracle模式名schmdw_AdvworksDW手动修改为schmdw
  • 保存配置后继续执行后续迁移步骤即可

已完成迁移后的补救操作

如果已经完成迁移,可通过重命名Oracle用户(Oracle中用户与模式一一对应)来修正:

  1. 先终止该用户的所有活跃会话(避免重命名失败):
-- 查询活跃会话
SELECT sid, serial# FROM v$session WHERE username = 'SCHMDW_ADVWORKSDW';

-- 杀掉会话(替换sid和serial#为查询结果)
ALTER SYSTEM KILL SESSION 'sid,serial#';
  1. 执行用户重命名命令(Oracle用户名默认大写,需严格匹配):
ALTER USER SCHMDW_ADVWORKSDW RENAME TO SCHMDW;
  1. 验证对象所有者是否自动更新(重命名用户后,其名下对象的所有者会同步变更,可执行以下语句确认):
SELECT owner, object_name FROM all_objects WHERE owner = 'SCHMDW';
  1. 若存在硬编码引用原模式名的对象(如存储过程、同义词),需手动修改这些对象内的所有者名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:21:39