Frage

a)

SQL> CREATE TABLE xml_tab1(poDoc XMLTYPE);

Table created.

SQL> desc xml_tab1;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PODOC                                              PUBLIC.XMLTYPE

b)

SQL> CREATE TABLE xml_tab2 of XMLType;

Table created.

SQL> desc xml_tab2;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 TABLE of PUBLIC.XMLTYPE

Code von hier.

Im ersten erstellen wir eine Typsspalte vom Typ XMLTYPE. Was macht der zweite? Wann sollte ich den ersten oder das zweite verwenden?

War es hilfreich?

Lösung

Die zweite Anweisung ist das Erstellen einer Objekttabelle.

Es ist fast nie so, dass Sie wirklich eine Objekttabelle verwenden möchten. Das war etwas, das im 8i -Zeitrahmen eingeführt wurde, als Oracle die Datenbank -objektorientierte. Während ein Großteil der objektorientierten PL/SQL -Verbesserungen nützlich waren, würde es nicht empfehlen, Objekttypen in SQL zu verwenden.

Andere Tipps

... aber andererseits ... XML hat nichts mit SQL zu tun, sodass einige normale Argumentation möglicherweise nicht gelten ... (zum Beispiel in Bezug auf Objekttypen).

Das erste Beispiel ist ein XMLTYPE, und abhängig von Ihrer Datenbankversion kann die zugrunde liegende Speicherdefinition SecureFile CLOB oder SecureFile Binary XML sein. Der erste ist von Oracle 12c und weiter aus nicht optimalen Leistungsgründen veraltet.

Das zweite Beispiel (XMLTYPE -Tabelle) hat, wenn die Syntax nicht spezifischer wie oben ist, auch SecureFile CLOB oder SecureFile Binary XML.

Das Beispiel für XMLTYPE -Spalten ist mehr "sql" nativ in seiner Verwendung (XML in die Spalte einfügen, auswählen * aus der Tabelle, wobei XMLColumn usw.). Die XMLTYPE -Tabelle ist mehr XML -native XML -Tabelle (XML -Tabelle einfügen in XML -Tabelle, (x) Abfrage "DOC". Verwendungszweck).

XMLTYPE -Tabellen können einfach mit dem XMLDB XDB -Repository ("Hierarchie aktiviert") verwendet werden, was mit automatisch XML -Schredding über FTP, WebDAV oder abfragt über HTTP -Zugriff verwendet werden kann. Wenn Sie diese Verhaltenserweiterung tun, werden sie auch über XMLDB -ACL -Sicherheitsimplementierungen geschützt.

XMLTYPE -Spalten können die gleichen FTP/WebDAV/HTTP -Eigenschaften haben, aber die Implementierung dieser Funktionalität ist nicht so "außerhalb der Box" wie beim Beispiel für die XMLTYPE -Tabelle.

Übrigens wurde in Oracle 8.0 die objektorientierte Funktionalität eingeführt.

Beide Beispiele oben in ihrer aktuellen Form führen zu SecureFile -Alternativen, die nichts mit der objektorientierten Funktionalität zu tun haben.

Schauen Sie sich die Unterschiede in den Anwendungsfällen von XMLTYPE und mehr auf der Haupt -Homepage der XMLDB

Oracle XML DB in Oracle Database 12c, June 2013
Best Practices for XQuery processing in Oracle Database, 12c June 2013
Best Practices for XML Storage in Oracle Database, 12c Oct 2013

http://www.oracle.com/technetwork/database/database-technologies/xmldb/overview/index.html

Weitere Informationen und HowTO -Informationen finden Sie im Oracle XMLDB -Forum und/oder unter www.xmldb.nl (zum Beispiel http://www.liberidu.com/blog/2007/06/24/oracle-11g-xmltype-storage-options/ Um einige Unterschiede hinsichtlich der Syntaxunterschiede zwischen den XMLTYPE -Speicheroptionen zu erkennen)

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top