Al leer un poco sobre la enumeración de MySQL, supongo que el equivalente más cercano sería una restricción de verificación simple
CREATE TABLE sizes (
name VARCHAR2(10) CHECK( name IN ('small','medium','large') )
);
pero eso no le permite hacer referencia al valor por el índice. También sería posible una relación de clave externa más complicada
CREATE TABLE valid_names (
name_id NUMBER PRIMARY KEY,
name_str VARCHAR2(10)
);
INSERT INTO valid_sizes VALUES( 1, 'small' );
INSERT INTO valid_sizes VALUES( 2, 'medium' );
INSERT INTO valid_sizes VALUES( 3, 'large' );
CREATE TABLE sizes (
name_id NUMBER REFERENCES valid_names( name_id )
);
CREATE VIEW vw_sizes
AS
SELECT a.name_id name, <<other columns from the sizes table>>
FROM valid_sizes a,
sizes b
WHERE a.name_id = b.name_id
Mientras opere a través de la vista, parecería que podría replicar la funcionalidad razonablemente bien.
Ahora, si admite soluciones PL/SQL, puede crear tipos de objetos personalizados que podrían incluir lógica para limitar el conjunto de valores que pueden contener y tener métodos para obtener los ID y los valores, etc.