所以我创建了一个名为“exam”的表,其中包含“Name”、“Rollno”和“Result P/F”三列。我希望它执行以下操作:
输入名称时(通过'&name'语法),它会自动为名字分配卷号(Rollno)1501,然后询问您的结果,您只能输入“P”或“F”,分别代表通过或失败。当您输入下一个名称时,它会将 Rollno 增加到 1502.. 等等。
关于 Rollno 部分,我有一个名为 EXAMSQN 的序列。看起来像:
关于“结果 P/F”部分,我有一个检查约束。这就是我向表中插入值的方式:
insert into exam (name, rollno, "Result P/F")
values ('&name', examsqn.nextval, '&Result P/F')
顺便说一句,这就是我的检查约束的方式:
1 alter table exam
2* add constraint exam_result_ck check ("Result P/F" in ('P','F'))
所以我对此的期望是,当它要求结果时,它只需要一个 P 或一个 F
我被要求提供名称和结果,但在那之后我得到了一个错误。整个过程是这样的:
Enter value for name: nikh
Enter value for result: P
old 2: values ('&name', examsqn.nextval, '&Result P/F')
new 2: values ('nikh', examsqn.nextval, 'P P/F')
insert into exam (name, rollno, "Result P/F")
*
ERROR at line 1:
ORA-02290: check constraint (SCOTT.EXAM_RESULT_CK) violated
非常感谢您的帮助。
谢谢 :)