Servus! Ich habe hier ein Problem und zwar: Ich versuche mal Methode und konstruktor von einem subtyp zu erweitern aber es funktioniert irgendwie nicht ... Immer wieder Warnung (ein Fehler in Body)
SET echo ON;
drop type BODY "RahmenBild_Typ";
drop type "RahmenBild_Typ";
drop type "Bild_Typ";
CREATE TYPE "Bild_Typ" AS OBJECT(
Nummer INTEGER,
Bild VARCHAR2(100)
MEMBER PROCEDURE bildEinlesen(nummer INTEGER, bild VARCHAR2),
--ACHTUNG: '_b' funktioniert nicht...wegen dem Unterstrich! AuЯerdem darf varchar2 nicht limitiert werden.
MEMBER FUNCTION bildAuslesen(nummer INTEGER) RETURN Bild_Typ
)NOT FINAL
NOT instantiable;
/
--
CREATE TYPE "RahmenBild_Typ" UNDER "Bild_Typ"(
Kategorie VARCHAR2(25),
CONSTRUCTOR FUNCTION "RahmenBild_Typ" (nummer INTEGER, bild VARCHAR2, kategorie VARCHAR2)
RETURN SELF AS RESULT --While an ordinary function returns some type, a constructor function returns "self as result".
)
/
CREATE TYPE BODY "RahmenBild_Typ" AS
overriding MEMBER PROCEDURE bildEinlesen(nummer INTEGER, bild VARCHAR2) IS BEGIN
SELF.Nummer=nummer;
SELF.Bild=bild;
END;--END bildEinlesen-Methode
CONSTRUCTOR FUNCTION "RahmenBild_Typ" (nummer INTEGER, bild VARCHAR2, kategorie VARCHAR2)
RETURN SELF AS RESULT IS BEGIN
-- bildEinlesen(nummer, bild);
SELF.Kategorie := kategorie;
RETURN;
END "RahmenBild_Typ";--END rahmenBild_Typ-Methode
END;--END BODY
könnte jemand vielleicht ein tipp geben, woran es liegt. ich wäre sehr dankbar dafür.
viele Grüße und besten Dank im Voraus
SET echo ON;
drop type BODY "RahmenBild_Typ";
drop type "RahmenBild_Typ";
drop type "Bild_Typ";
CREATE TYPE "Bild_Typ" AS OBJECT(
Nummer INTEGER,
Bild VARCHAR2(100)
MEMBER PROCEDURE bildEinlesen(nummer INTEGER, bild VARCHAR2),
--ACHTUNG: '_b' funktioniert nicht...wegen dem Unterstrich! AuЯerdem darf varchar2 nicht limitiert werden.
MEMBER FUNCTION bildAuslesen(nummer INTEGER) RETURN Bild_Typ
)NOT FINAL
NOT instantiable;
/
--
CREATE TYPE "RahmenBild_Typ" UNDER "Bild_Typ"(
Kategorie VARCHAR2(25),
CONSTRUCTOR FUNCTION "RahmenBild_Typ" (nummer INTEGER, bild VARCHAR2, kategorie VARCHAR2)
RETURN SELF AS RESULT --While an ordinary function returns some type, a constructor function returns "self as result".
)
/
CREATE TYPE BODY "RahmenBild_Typ" AS
overriding MEMBER PROCEDURE bildEinlesen(nummer INTEGER, bild VARCHAR2) IS BEGIN
SELF.Nummer=nummer;
SELF.Bild=bild;
END;--END bildEinlesen-Methode
CONSTRUCTOR FUNCTION "RahmenBild_Typ" (nummer INTEGER, bild VARCHAR2, kategorie VARCHAR2)
RETURN SELF AS RESULT IS BEGIN
-- bildEinlesen(nummer, bild);
SELF.Kategorie := kategorie;
RETURN;
END "RahmenBild_Typ";--END rahmenBild_Typ-Methode
END;--END BODY
könnte jemand vielleicht ein tipp geben, woran es liegt. ich wäre sehr dankbar dafür.
viele Grüße und besten Dank im Voraus