Question

I am using oracle XE and trying to add a attribute that restricts to only three available value 'Small','Medium','large' to an existing table using Alter Table and Enum.

Tried doing,

ALTER TABLE TRUCK ADD TTYPE ENUM('SMALL','MEDIUM','LARGE');

but gets invalid option

ALTER TABLE TRUCK ADD TTYPE ENUM('SMALL','MEDIUM','LARGE');
                                 *

where the error highlights after ENUM.

I think I am having syntax error. Please help to resolve.

Was it helpful?

Solution

I think you want this:

ALTER TABLE TRUCK 
    ADD (ttype VARCHAR2(6) 
    CONSTRAINT con_type 
    CHECK (ttype in('SMALL','MEDIUM','LARGE'))
    );

OTHER TIPS

There is no ENUM datatype in Oracle. You can use a foreign key constraint to a reference table (with 3 rows) or a CHECK constraint instead:

ALTER TABLE truck 
  ADD ttype VARCHAR(6),
  ADD CONSTRAINT ttype_check
    CHECK (ttype IN ('SMALL','MEDIUM','LARGE')) ;
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top