我在oracle 10G创建的数据库中有一个表。它包含一个类型为“VARCHAR”的列,并以这种格式存储日期为字符串->‘’例如:‘12-8月-2008’。现在,我想将本专栏的数据类型从VARCHAR更改为日期。但是当我浏览这个查询时->
ALTER TABLE sales_order
MODIFY COLUMN delivery_date DATE;我得到跟随错误
ORA-00905:缺失关键字
我也尝试过:
ALTER TABLE sales_order
ALTER COLUMN delivery_date DATE;我发现了一个错误:
ORA-01735:无效的ALTER选项
但是,当我尝试添加一个带有日期数据类型的新列时,它可以正常工作。例子:
ALTER TABLE sales_order
ADD delivery DATE;因此,有人能建议我一种不删除列及其数据的方式来更改数据类型吗?
发布于 2014-01-30 21:26:34
这是第一个,稍微修改一下:
ALTER TABLE sales_order MODIFY (delivery_date DATE);但我不确定这些特定的数据类型是否有效,而且根据当前的数据,它也可能不起作用。
在这种情况下,你可能认为有必要:
X。X (可能需要几次数据修复才能工作)。X重命名为旧列名。发布于 2016-05-02 16:05:17
虽然这是一个很老的问题,但我将把我的解决方案放在这里,供寻求解决办法的人使用:
这是我的解决方案,而且效果很好。
ALTER TABLE `sales_order` CHANGE `delivery_date` `delivery_date` DATE;谢谢
发布于 2014-02-18 04:36:33
修改列,然后语法是:-
修改表table_name修改column_name数据类型;
但是,当您修改列时,datatype列必须为空。
https://stackoverflow.com/questions/21467607
复制相似问题