数字数据类型oracle的默认值的正确格式



我有一个PL/SQL的表结构代码,如下所示(此代码只是创建代码的一行(:

"VERSION" NUMBER(10) DEFAULT 1  1 105331  NOT NULL

问题出在DEFAULT之后的数字上。有人知道这是否合理吗?如果是,这意味着什么?当我运行整个代码时,我会得到一个"缺少右括号"的错误,但当我删除这一行时,它就起作用了。(这段代码不是我写的,我无法访问写它的开发人员(

有人知道这是否有意义吗?

不,它没有意义,也不是语法有效的代码。

1105331都是数字,但组合的1 1 105331不是数字,它是3个数字,尝试将3个数字放入单个NUMBER列是没有意义的。

当SQL解析器解析语句时,它得到:

"VERSION" NUMBER(10) DEFAULT 1

到目前为止,这是有效的,然后它读取下一个数字,这是无效的语法,因此Oracle抱怨无效语法,并建议用右括号(错误消息的来源(终止DDL语句。

通常,(语义(版本标识符是一个由3个句号分隔的数字组成的字符串,表示主要、次要和补丁版本号(这不是一个可以表示为单个十进制数字的数字(,因此您可以使用:

"VERSION" VARCHAR2(10) DEFAULT '1.1.105331' NOT NULL

将列转换为这种格式是否有意义是您必须确定的,因为列的含义是一个商业决策,而不是我们需要确定的领域知识;然而,您当前的代码在语法上是无效的,我们可以告诉您,这是没有意义的,它不会编译。

相关内容

  • 没有找到相关文章

最新更新