act*_*ram 1 sql oracle alter-table
我正在尝试添加一个日期类型的虚拟列,该列将五年添加到另一个日期列:
ALTER TABLE AU_Ventes ADD (
DateVente date NOT NULL,
DateFinGarantie date As(ADD_MONTHS(DateVente, 60))
);
Run Code Online (Sandbox Code Playgroud)
但我收到错误:“%s:无效标识符”。也许我无法在 ALTER TABLE 中使用 ADD_MONTHS 函数。我可以做什么来完成我想做的事?
谢谢。
尽管您可以在语句中定义虚拟列create table,但显然您是在创建虚拟列的同时创建它所基于的列,但您不能在同一alter table语句中同时定义这两者。您必须分两步完成:
ALTER TABLE AU_Ventes ADD DateVente date NOT NULL;
ALTER TABLE AU_Ventes ADD DateFinGarantie date
As(ADD_MONTHS(DateVente, 60));
Run Code Online (Sandbox Code Playgroud)
不确定这是有意的限制,但它就是这样运作的。
简单的 SQL Fiddle来展示这个工作原理。
| 归档时间: |
|
| 查看次数: |
4544 次 |
| 最近记录: |