【问题标题】:Rename Oracle Table or View重命名 Oracle 表或视图
【发布时间】:2010-10-24 12:54:42
【问题描述】:

在 Oracle 中重命名表或视图的语法是什么?

【问题讨论】:

  • @skaffman: lmgtfy.com/ 正是您所需要的 :)

标签: oracle table-rename


【解决方案1】:
ALTER TABLE mytable RENAME TO othertable

Oracle 10g也:

RENAME mytable TO othertable

【讨论】:

  • 在早于 10g 的 oracle 版本中,不能再重命名视图。删除/重新创建是现在唯一可行的方法。查看单独的答案以获取示例。
【解决方案2】:

要重命名表,您可以使用:

RENAME mytable TO othertable;

ALTER TABLE mytable RENAME TO othertable;

或者,如果由另一个架构拥有:

ALTER TABLE owner.mytable RENAME TO othertable;

有趣的是,ALTER VIEW 不支持重命名视图。但是,您可以:

RENAME myview TO otherview;

RENAME 命令适用于表、视图、序列和私有同义词,仅适用于您自己的架构。

如果视图不在您的架构中,您可以使用新名称重新编译视图,然后删除旧视图。

(在 Oracle 10g 中测试)

【讨论】:

【解决方案3】:

要重命名不同架构中的表,请尝试:

ALTER TABLE owner.mytable RENAME TO othertable;

重命名命令(如“rename mytable to othertable”)仅支持重命名同一架构中的表。

【讨论】:

    【解决方案4】:

    同样可以rename indexes

    alter index owner.index_name rename to new_name;
    

    【讨论】:

    • 更适合作为评论,而不是答案。
    【解决方案5】:

    过去 10g 当前答案不再适用于重命名视图。 唯一仍然有效的方法是删除并重新创建视图。 我能想到的最好方法是:

    SELECT TEXT FROM ALL_VIEWS WHERE owner='some_schema' and VIEW_NAME='some_view';

    在返回的 SQL 前面加上这个

    创建或替换视图 some_schema.new_view_name 为 ...

    删除旧视图

    删除视图 some_schema.some_view;

    【讨论】:

      猜你喜欢
      • 2012-06-26
      • 2022-11-24
      • 2015-03-06
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      相关资源
      最近更新 更多