pl/sqlオブジェクト型を使用してオブジェクトコンポジションを実装する方法を理解しようとしています。これが私の超簡単な例です。
CREATE OR REPLACE TYPE PERSON FORCE AUTHID DEFINER UNDER MYSCHEMA.BASE_OBJECT (
student ND_COMMON_ADMIN.STUDENT
) NOT FINAL;
CREATE OR REPLACE TYPE STUDENT FORCE AUTHID DEFINER UNDER MYSCHEMA.BASE_OBJECT (
person ND_COMMON_ADMIN.PERSON,
application_checklist ND_COMMON_ADMIN.APPLICATION_CHECKLIST
) NOT FINAL;
その人(所有者オブジェクト)に学生オブジェクトが含まれていることがわかります。また、学生に個人オブジェクトが含まれていることもわかります(そうでない場合、学生は個人のデータにアクセスできません...そうですか?)
ただし、PL / SQLは、これらのオブジェクトが相互に参照することを嫌い、次のエラーをスローします。
Error: ORA-04055: Aborted: "PERSON" formed a non-REF mutually-dependent cycle with "STUDENT".
ですから、作曲を通じて生徒を人の一部にする方法についてアドバイスをいただければ、どの人のオブジェクトに属しているのかを生徒に教えてもらえれば幸いです。
ありがとう。