CREATE or REPLACE TYPE mit Typ und Abhängigkeiten Tabelle
Bevor Sie das Frage, ich habe die Oracle-docs zu diesem Thema:
Mit CREATE or REPLACE TYPE mit Typ und Abhängigkeiten Tabelle
aber noch nicht bekommen, mein Fehler gelöst.
Habe ich einige Objekt-Typen:
CREATE OR REPLACE TYPE SchoolMember AS OBJECT (
...
) NOT FINAL;
/
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember (
...
);
/
CREATE OR REPLACE TYPE Curse AS OBJECT (
...
refTeacher REF Teacher,
...
);
/
Sagen wir, ich will zu ändern, die Lehrer Objekttyp hinzufügen eines Konstruktors:
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember (
...
CONSTRUCTOR FUNCTION Teacher(...) RETURN SELF AS RESULT
);
/
CREATE OR REPLACE TYPE BODY Teacher AS
...
END;
/
Bekomme ich die ORA-02303: kann nicht droppen oder zu ersetzen, eine Art mit-Typs oder der Tabelle abhängigen, weil der Lehrer-Typ verwendet wird, in der Fluch der Objekttyp selbst.
Wo soll ich die FORCE-option, wenn Sie eine geerbte Objekt-Typ (Lehrer in diesem Fall)?
Ich habe versucht, mehrere Möglichkeiten, aber keiner von Ihnen arbeiten:
CREATE OR REPLACE TYPE Teacher FORCE UNDER SchoolMember
oder
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember FORCE
Aber die ORA-02303 Fehler ist immer noch da
InformationsquelleAutor rodrunner | 2013-05-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann ich nicht genau reproduzieren Sie Ihr Problem.
Original-Objekte
Erstellen, ohne KRAFT schlägt
Erstellen mit KRAFT arbeitet
Update
Den
FORCE
option fürCREATE TYPE
wurde in 11gR2. Sie sehen es in diese 11gR2 syntax-Diagramm, aber nicht in diese 11gR1-Diagramm.In Ihrem Fall, müssen Sie den Typ löschen, bevor Sie es neu erstellen.
Woops, sorry. Ich aktualisierte mein Beispiel, und es funktioniert gut mit Ihrem
FORCE
syntax.Es funktioniert nicht für mich. Ich bin mit der Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
Sieht aus wie eine neue version Unterschied, siehe mein neuestes update.
Ok, vielen Dank für Ihre Bemühungen
InformationsquelleAutor Jon Heller
Drop der Typ mit der force-option, und führen Sie Ihren code. Es funktioniert
Typ erstellt.
FORCE
mitDROP TYPE
kann es ändern von Tabellen und Daten verlieren!InformationsquelleAutor Ravi