Добавление ограничений на абстрактный тип

У меня есть этот тип, который я создал:

create type baseType as Object(...) NOT Instantiable not Final

и я хотел бы добавить ограничения для некоторых полей. Проблема в том, что этот тип в not instantiable и поэтому я не могу добавить ограничение к его полям. Итак, когда я создаю свои наследующие типы

create type childType1 under baseType (...) 

create type childType2 under baseType  (...) 

Я должен добавить ограничения для всех дочерних таблиц. Это правильный путь? Я думал, что будет способ добавить ограничения на общие поля только в родительском типе. Есть ли способ сделать это?

1 ответ

Решение

Вы не можете добавлять ограничения к типам объектов вообще - ограничения находятся на столе. Если объект не является экземпляром, вы не можете иметь таблицу на его основе, поэтому не имеет никаких ограничений на него.

Я думаю, что ответом будет сделать объект типа Instantiable. Затем вы можете создать таблицу на основе этого с ограничениями. Конечно, эти ограничения не будут "наследоваться" дочерними типами.

Однако все это говорит о том, что я лично избегаю типов объектов Oracle, когда могу.

Другие вопросы по тегам