我当前的表中OrderTime
数据类型列为int
。但是我需要将其更改为日期/日期时间。
我尝试使用此alter
语句更改列的数据类型:
Alter table Orders Alter Column OrderTime date;
但是我收到了这个错误:
ORA-01735:ALTER TABLE选项无效
- 00000 - “ALTER TABLE选项无效”
醇>
答案 0 :(得分:0)
在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);
答案 1 :(得分:0)
您可以执行以下操作(如果列为空或仅包含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;
答案 2 :(得分:-1)
您可以使用以下解决方案
ALTER TABLE `Orders` CHANGE `OrderTime` `OrderTime` DATE NOT NULL;
如需更多帮助,请查看我的博客99techguru.com