【发布时间】:2020-05-09 07:23:12
【问题描述】:
这是我在oracle live sql网站上输入的作业问题:
Create table student (regno number (6), mark number (3) constraint b check (mark >=0 and
mark <=100));
Alter table student add constraint b2 check (length(regno<=4));
它不断在Alter 的第二行抛出“缺少右括号”错误。我在其他地方读到,这是语法的一般错误,但对于我的一生,即使我将源材料中的代码复制并粘贴到 SQL 工作表中,或者现在重新输入大约 20 次,我仍然会收到错误。
我还尝试转换为 char,因为 regno 是一个数字。
Alter table student add constraint b2 check (length(to_char(regno)<=4));
但我得到了同样的错误。
【问题讨论】:
-
嗯,这只是家庭作业。否则,对数值的字符限制将毫无意义。照原样,
length(to_char(regno)) <= 4表示regno >= -999 and regno <= 9999,如果我没记错的话,这是一个相当奇怪的限制:-) -
这个实验表的规格列出了 Windows NT 和 Windows 7,所以我只是向讲师抱怨了这一点以及问题中给定代码中的勘误表。
标签: oracle constraints ddl ora-00907