kan3
kan3

Reputation: 33

how do I make the right references in oracle

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

Answers (2)

Bill the Lizard
Bill the Lizard

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

kan3
kan3

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

Related Questions