在 SQL Developer 中更改数据类型

问题描述 投票:0回答:3

我当前的表的

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

我尝试使用以下

alter
语句更改列的数据类型:

Alter table Orders Alter Column OrderTime date;

但我收到此错误:

ORA-01735: 无效的 ALTER TABLE 选项

  1. 00000 - “无效的 ALTER TABLE 选项”
sql oracle-sqldeveloper alter-table
3个回答
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;

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
投票

您可以使用以下解决方案

ALTER TABLE `Orders` CHANGE `OrderTime` `OrderTime` DATE NOT NULL;

如需更多帮助,请查看我的博客99techguru.com

© www.soinside.com 2019 - 2024. All rights reserved.