当我运行 alter
查询时,我收到错误消息,指出要修改的列必须为空。
Table : Monthly_Result (Id Number(38,0), dealer_ID varchar2, sales_revenue Number(38,2))
dealer_Id
应更改为 Number(38,0)
请帮忙
最佳答案
正如 Alex 在他的评论中提到的,您需要添加新列;更新它并检查值是否已正确转换;然后在准备好后删除旧列。
-- step 1
alter table monthly_result add tmp number(38, 0);
update monthly_result set tmp = to_number(dealer_id);
-- step 2
-- check values are set correctly in tmp
-- step 3
alter table monthly_result rename column dealer_id to dealer_id_old;
alter table monthly_result rename column tmp to dealer_id;
-- step 4
alter table monthly_result drop column dealer_id_old;
关于oracle - 如何在 Oracle 数据库中将列的数据类型从 varchar2 更改为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442340/