oracle: object name

M

motf

oracle: object name(bzw typ)

Hallo,
ich versuche eine member function zu schreiben, die überprüft, ob sich ein bestimmter Objekttyp in einer Tabelle befindet. Das sollte dann ungefähr so aussehen.
CREATE OR REPLACE TYPE ty_role_type UNDER ty_role_protocol(
role_of REF ty_role_protocol,
root REF ty_object_with_roles,
subroles ty_tab_role_type,
OVERRIDING MEMBER FUNCTION exists_as(role_type_name IN VARCHAR2) RETURN BOOLEAN
)
Die Methode exists_as soll überprüfen, ob sich in der Tabelle subrolles ein Object mit dem Namen role_type_name befindet. Wie bekomme ich den Typ des Objectes?
 
Zuletzt bearbeitet von einem Moderator:
Versuchs mal ungefähr so:
Code:
SELECT VALUE(p) 
  FROM subrolles p
WHERE VALUE(p) IS OF (role_type_name );

Das Problem ist, du bekommst nicht nur alle Objekte vom Typ role_type_name sondern auch alle davon abgeleiteten Objekte, was ja rein Objektorientiert gesehen auch Sinn macht.

Wenn du also nur exakt Objekte vom Typ role_type_name haben willst, musst du "IS OF (ONLY role_type_name)" benutzen.
 
Zuletzt bearbeitet:
Zurück