1

私は私が作成したこのタイプを持っています:

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

いくつかのフィールドに制約を追加したいと思います。問題は、このタイプが入力されnot instantiableているため、フィールドに制約を追加できないことです。それで、継承型を作成するとき

create type childType1 under baseType (...) 

create type childType2 under baseType  (...) 

すべての子テーブルに制約を追加する必要があります。これは正しい方法ですか?親タイプでのみ共通フィールドに制約を追加する方法があると思いました。それを行う方法はありますか?

4

1 に答える 1

2

オブジェクトタイプに制約を追加することはできません。制約はテーブルにあります。オブジェクトがインスタンス化できない場合、それに基づくテーブルを持つことはできず、制約はありません。

答えは、オブジェクトタイプをインスタンス化できるようにすることだと思います。次に、制約付きでそれに基づいてテーブルを作成できます。もちろん、これらの制約は子タイプによって「継承」されません。

とはいえ、私はできる限りOracleオブジェクトタイプを個人的に避けています。

于 2012-12-10T07:47:53.463 に答える