Oracle 在PLSQL中从数字更改为生成

Oracle 在PLSQL中从数字更改为生成,oracle,plsql,numbers,generated,Oracle,Plsql,Numbers,Generated,我试图将此列的原始数据类型为Number的表更改为生成的列,但我得到一个错误“ORA-00905缺少关键字” 我的语法正确吗 除了删除和重新创建表,我还有其他选择吗?Oracle文档显然不支持您尝试的语法。显而易见的解决方案是放下色谱柱,然后将其更换: ALTER TABLE mytable DROP COLUMN flagcolumn; ALTER TABLE mytable ADD numeric GENERATED ALWAYS AS (CASE WHEN valuecolu

我试图将此列的原始数据类型为Number的表更改为生成的
列,但我得到一个错误“ORA-00905缺少关键字”

我的语法正确吗


除了删除和重新创建表,我还有其他选择吗?

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;
实际上没有理由不这样做,因为您在任何情况下都会删除列的原始数据

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;