修改列名时提示" ORA-54032: column to be renamed is used in a virtual column expression"

非著名魔兽主持人 2016-10-12 03:08:09
alter table A rename column ORDER_NO to HEAD_ROW_ID;


提示:[Err] ORA-54032: column to be renamed is used in a virtual column expression
如何处理?
...全文
956 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sych888 2016-10-12
  • 打赏
  • 举报
回复
删除重建,简单直接 在业务空闲时
liuzhe_521 2016-10-12
  • 打赏
  • 举报
回复
函数索引删掉,改名后使用新字段名重建函数索引。
卖水果的net 2016-10-12
  • 打赏
  • 举报
回复

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 
Connected as test@MSGDE

SQL> 
SQL> -- 你是哪个版本的库
SQL> create table test(id int, ORDER_NO int as (id * 100), v1 int as (id * 2) );
Table created
SQL> insert into test(id) values(100);
1 row inserted
SQL> select * from test ;
                                     ID   ORDER_NO         V1
--------------------------------------- ---------- ----------
                                    100      10000        200
SQL> -- 1、重命名列
SQL> alter table test rename column ORDER_NO to HEAD_ROW_ID;
Table altered
SQL> -- 2、删除再添加
SQL> alter table test drop column v1 ;
Table altered
SQL> alter table test add v2 int as (id * 10);
Table altered
SQL> select * from test ;
                                     ID HEAD_ROW_ID         V2
--------------------------------------- ----------- ----------
                                    100       10000       1000
SQL> drop table test purge ;
Table dropped

SQL> 
  • 打赏
  • 举报
回复
引用 1 楼 liuzhe_521 的回复:
ORDER_NO是不是在虚拟列或者函数索引里引用了 。
在函数里用了,怎么整?
liuzhe_521 2016-10-12
  • 打赏
  • 举报
回复
ORDER_NO是不是在虚拟列或者函数索引里引用了 。

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧