在SQL开发人员中更改数据类型

时间:2017-07-22 13:17:06

标签: sql oracle-sqldeveloper alter-table

我当前的表中OrderTime数据类型列为int。但是我需要将其更改为日期/日期时间。

我尝试使用此alter语句更改列的数据类型:

Alter table Orders Alter Column OrderTime date;

但是我收到了这个错误:

  

ORA-01735:ALTER TABLE选项无效

     
      
  1. 00000 - “ALTER TABLE选项无效”
  2.   

3 个答案:

答案 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