我在oracle 10G中创建的数据库中有一个表。它包含“VARCHAR”类型的列,并将日期存储为以下格式的字符串 ->“dd-mon-yyyy”,例如:“12-aug-2008”。现在我想将此列的数据类型从 VARCHAR 更改为DATE。但是当我执行这个查询时->
ALTER TABLE sales_order
MODIFY COLUMN delivery_date DATE;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
ORA-00905: 缺少关键字
我也尝试过:
ALTER TABLE sales_order
ALTER COLUMN delivery_date DATE;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ORA-01735: 无效的 ALTER TABLE 选项
但是,当我尝试添加具有 DATE 数据类型的新列时,它工作正常。例子 :
ALTER TABLE sales_order
ADD delivery DATE;
Run Code Online (Sandbox Code Playgroud)
那么,有人可以建议我一种在不删除列及其数据的情况下更改数据类型的方法吗?
我想计算完整二进制树中的节点数,但我能想到的只是遍历整个树.这将是一个O(n)算法,其中n是树中节点的数量.什么是最有效的算法来实现这一目标?