Reputation: 33
I wrote this SQL script like this and I have no idea what's missing
create table Reggister(
stdNo CHAR(5),
courseID CHAR(8),
semesterID CHAR(5),
grade CHAR(2),
mark DECIMAL(4,2) check(BETWEEN 0.00 and 100.00),
foreign key (stdNo) references student(stdNo),
foreign key (courseID) references course(courseID),
foreign key (semesterID) references semester(semesterID),
primary key (stdNo, courseID, semesterID)
);
it'll give me something like ORA-00936: missing expression
Upvotes: 1
Views: 37
Reputation: 406135
Jeff Holt's comment is the answer. The syntax for the BETWEEN
operator is:
expression [ NOT ] BETWEEN low AND high
So you're just missing the expression to be tested in the range part of the check constraint. It should be:
check(mark BETWEEN 0.00 and 100.00)
The rest of your script works when the tables and columns in your foreign key declarations are present in the schema.
Upvotes: 1
Reputation: 33
I solved it
create table Reggister(
stdNo CHAR(5),
courseID CHAR(8),
semesterID CHAR(5),
grade CHAR(2),
mark DECIMAL(4,2) check(mark BETWEEN 0.00 and 100.00),
foreign key (stdNo) references student(stdNo),
foreign key (courseID) references course(courseID),
foreign key (semesterID) references semester(semesterID)
);
Upvotes: 0