Registrieren von XML-Schemas in Oracle - how, um loszuwerden, übrig gebliebene Objekte
Habe ich versucht zu registrieren, ein schema in Oracle den anderen Tag, um ein XML-Dokument validiert. Der code, den ich verwendet war ziemlich einfach:
dbms_xmlschema.registerSchema(schemaURL => 'http://www.myCompany.com/schema',
schemaDoc => :schemaCLOB);
Zunächst schien alles gut zu funktionieren, soweit Validierung geht. Ich bemerkte aber, dass es gab Dutzende von neuen Datenbank-Objekte: Tabellen, Trigger und Typen (ein paar dowsn Tabellen und Trigger, aber wahrscheinlich viele Hunderte von Arten).
Ich habe versucht, löschen Sie das schema so:
dbms_xmlschema.deleteSchema(schemaURL => 'http://www.myCompany.ca/schema',
delete_option => dbms_xmlschema.DELETE_INVALIDATE);
De-registriert das schema, aber alle Objekte, die zurückgelassen wurden.
Ich RTFM würde ein wenig zu spät und entdeckt, dass der extra-Objekte erstellt wurden, verlassen default-Werte im Aufruf registerSchema, so erkannte ich, ich müsste manuell entfernen Sie die zusätzlichen Objekte.
Wenn ich jetzt versuche die Objekte entfernen, Oracle sagt mir, dass Sie nicht existieren. Ich kann nicht wählen Sie aus Ihnen und meiner IDE (PL/SQL Developer) zeigt Sie als ungültig (ein kleines, rotes "X" neben Ihnen). Ich kann auch nicht finden, alle Informationen über diese Tabellen in all_tables
. Wie Schaffe ich diese?
InformationsquelleAutor FrustratedWithFormsDesigner | 2010-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung war: restauriert von Vortages-backup. In der Zukunft werde ich die Einstellung
gentables
undgentypes
zuFALSE
IMMER, und löschen Sie mit DELETE_CASCADE_FORCE. Alles, was nicht funktioniert, werde ich wohl post eine neue Frage stellen.InformationsquelleAutor FrustratedWithFormsDesigner
Ich bin wahrscheinlich etwas fehlt offensichtlich, aber ein Blick auf die Dokumentation konnte Sie nicht verwenden die DELETE_CASCADE oder DELETE_CASCADE_FORCE Optionen?
Bekam Zugang zu metalink? Wenn ja, überprüfen Sie, wenn Sie betroffen sind: Fehler 8498273: DBMS_XMLSCHEMA.DELETESCHEMA HÄNGT EWIG oder Bug 3581743: DBMS_XMLSCHEMA.DELETESCHEMA FEHLGESCHLAGEN VERLASSEN, SCHEMA-OBJEKTE, DIE NICHT GELÖSCHT WERDEN KÖNNEN
Nein, was metalink? Kannst du eine URL für diese beiden bugs?
Wie Marco gesagt hat, es ist der Oracle support-Website. Leider ist aufgrund der Klausel(N) in der metalink-Vertrag darf ich nicht mehr posten details der bugs.
InformationsquelleAutor Ian Carpenter
Metalink ist der Oracle support-Website ( http://support.oracle.com ), aber Sie müssten eine support ID(entifier) zu betreten, das Schutzgebiet.
Wenn auf 11g verwenden, DBMS_XMLSCHEMA.PURGESCHEMA, um loszuwerden, der Objekte. Wenn auf 10gRx verwenden
dbms_xmlschema.deleteSchema(schemaURL => 'http://www.myCompany.ca/schema',
delete_option => dbms_xmlschema.DELETE_CASCADE_FORCE);
oder
dbms_xmlschema.deleteSchema('http://www.myCompany.ca/schema',4);
Wenn das nicht hilft, bounce die Datenbank nach der Anwendung von Gewalt zu löschen und versuchen Sie es erneut. Wenn das nicht hilft, löschen Sie das schema über eine delete-Anweisung basierend auf user_xml_schemas (die Letzte option wird nicht unterstützt).
InformationsquelleAutor Marco Gralike