我当前的表的
OrderTime
数据类型列为 int
。但是我需要将其更改为日期/日期时间。
我尝试使用以下
alter
语句更改列的数据类型:
Alter table Orders Alter Column OrderTime date;
但我收到此错误:
ORA-01735: 无效的 ALTER TABLE 选项
- 00000 - “无效的 ALTER TABLE 选项”
您可以执行以下操作(如果列为空或仅包含 NULL)
alter table Orders modify (OrderDate date);
如果列不为空
alter table Orders
add( new_date_col date );
update Orders
set new_date_col = to_date(old_date_col, 'DDMMYYYY') // or other correct format
// 'DDMMYYYY' will work if you current number row contains 01012010
alter table orders
drop column old_date_column;
alter table orders
rename column new_date_col TO old_date_col;
在Oracle中,我认为列需要为空才能更改类型。 所以,像这样:
alter table Orders rename column OrderTime to old_OrderTime;
alter table Orders add column OrderTime date;
update Orders
set OrderTime = old_OrderTime;
alter table Orders drop (old_OrderTime);
您可以使用以下解决方案
ALTER TABLE `Orders` CHANGE `OrderTime` `OrderTime` DATE NOT NULL;
如需更多帮助,请查看我的博客99techguru.com