2012-12-09 27 views
1

我有這種類型的,我已經創建了:添加約束抽象類型

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

,我想添加約束一些字段。問題是這種類型在not instantiable,因此,我不能添加一個約束到它的領域。那麼,當我創建我的繼承類型

create type childType1 under baseType (...) 

create type childType2 under baseType (...) 

我必須添加約束到所有的子表。這是正確的方法嗎?我認爲會有一種方法只在父類型的公共字段上添加約束。有沒有辦法做到這一點?

回答

2

您不能將約束添加到對象類型 - 約束位於表上。如果對象不可實例化,則不能有基於它的表,不要限制它。

我想答案是讓對象類型爲Instantiable。然後你可以創建一個基於它的約束表。當然,這些約束不會被孩子類型「繼承」。

儘管如此,我個人可以避免使用Oracle對象類型。