首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PLSQL中将Number改为Generated

在PLSQL中将Number改为Generated
EN

Stack Overflow用户
提问于 2015-06-05 23:09:15
回答 1查看 29关注 0票数 2

我正在尝试将该列的原始数据类型为Number的表更改为generated列,但收到错误"ORA-00905 Missing Keyword“

代码语言:javascript
复制
Alter Table MyTable
Modify Column FlagColumn NUMERIC (38,0) GENERATED ALWAYS AS (CASE  WHEN ValueColumn IS NULL THEN 1 ELSE 0 END) VIRTUAL;

我的语法正确吗?

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

EN

回答 1

Stack Overflow用户

发布于 2015-06-05 23:21:33

很明显,Oracle文档不支持您正在尝试的语法。显而易见的解决方案是删除列,然后替换它:

代码语言:javascript
复制
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;

真的没有理由不这样做,因为在任何情况下都会去掉列的原始数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30669948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档