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

如何重命名Oracle数据库中其他schema下的表?

跨schema重命名Oracle表操作说明

该操作完全可实现,你遇到的所有报错均由语法规则不符或权限不足导致,各报错原因及正确操作方法如下:

报错原因说明

  • ORA-01765报错:RENAME 语句本身仅支持重命名当前登录用户自身schema下的对象,语法层面禁止在待重命名的表名前加其他schema的所有者前缀,因此你用RENAME加B.前缀的写法天然不合法,无论权限是否足够都会触发该报错。
  • ORA-14047报错:ALTER TABLE ... RENAME TO 语法规则要求TO后只能填写新表名,不能加schema前缀,因为重命名操作不支持跨schema转移对象,你在新表名前加B.前缀会被判定为非法操作组合,因此触发该报错。
  • ORA-01031报错:当前登录用户A要修改B schema下的表属性,需要持有ALTER ANY TABLE系统权限,或由B用户显式为A授予该表的ALTER对象权限,权限缺失就会触发该报错。

正确操作步骤

方案1:可登录B用户操作(最简便)

直接登录B用户执行以下任意一条语句即可,无需额外授权:

RENAME table_1 TO table_1_temp;

或

ALTER TABLE table_1 RENAME TO table_1_temp;

方案2:仅能使用A用户操作

首先完成权限授予:

  • 若用B用户操作授权,执行:
GRANT ALTER ON table_1 TO A;
  • 若用DBA权限用户操作授权,可直接授予系统权限(权限范围更大):
GRANT ALTER ANY TABLE TO A;

授权完成后,用A用户执行以下正确语句即可完成同schema重命名:

ALTER TABLE B.table_1 RENAME TO table_1_temp;

注:TO后无需加B.前缀,Oracle会自动沿用原表的schema归属

内容的提问来源于stack exchange,提问作者Ghifari Dwiki Ramadhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:06:03