我正在尝试将该列的原始数据类型为Number的表更改为generated列,但收到错误"ORA-00905 Missing Keyword“
Alter Table MyTable
Modify Column FlagColumn NUMERIC (38,0) GENERATED ALWAYS AS (CASE WHEN ValueColumn IS NULL THEN 1 ELSE 0 END) VIRTUAL;我的语法正确吗?
除了删除和重新创建表之外,我还有其他选择吗?
发布于 2015-06-05 23:21:33
很明显,Oracle文档不支持您正在尝试的语法。显而易见的解决方案是删除列,然后替换它:
ALTER TABLE mytable
DROP COLUMN flagcolumn;
ALTER TABLE mytable
ADD numeric GENERATED ALWAYS AS (CASE WHEN valuecolumn IS NULL THEN 1 ELSE 0 END) VIRTUAL;真的没有理由不这样做,因为在任何情况下都会去掉列的原始数据。
https://stackoverflow.com/questions/30669948
复制相似问题