在Oracle中重命名表或视图的语法是什么?
在Oracle中重命名表或视图的语法是什么?
ALTER TABLE mytable RENAME TO othertable
在Oracle 10g中也是如此:
RENAME mytable TO othertable
要重命名一个表,你可以使用:
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中测试)
要重命名不同模式下的表,请尝试以下操作:
ALTER TABLE owner.mytable RENAME TO othertable;
重命名命令(如"rename mytable to othertable
")只支持将表重命名为相同架构中的表。
过了10g版本,当前的答案不再适用于重命名视图。唯一仍然有效的方法是删除并重新创建视图。我能想到的最好的方法是:
SELECT TEXT FROM ALL_VIEWS WHERE owner='some_schema' and VIEW_NAME='some_view';
在返回的SQL语句前添加以下内容:
Create or replace view some_schema.new_view_name as ...
删除旧视图
Drop view some_schema.some_view;