Pregunta

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

Código de aquí .

En la primera, estamos creando una columna de tipo XMLTYPE. ¿Qué hace el segundo? ¿Cuándo debo utilizar el primer o el segundo?

¿Fue útil?

Solución

La segunda afirmación es la creación de una tabla de objetos.

Es casi nunca es el caso de que realmente desea utilizar una tabla de objetos. Eso era algo que se introdujo en el marco de tiempo 8i Oracle cuando estaba haciendo el objeto de base de datos orientada. Mientras que una gran cantidad de mejoras orientadas al objeto PL / SQL han sido útiles, utilizando los tipos de objetos en SQL no es algo que me gustaría recomendar.

Otros consejos

... pero por otra parte ... XML tiene nada que ver con SQL, por lo que algunos razonamiento normal, podría no aplicarse ... (en relación con los tipos de objetos, por ejemplo).

El primer ejemplo es un XMLType y dependiendo de su versión de base de datos de la definición almacén subyacente podría ser SecureFile CLOB o SecureFile XML Binario. El primero está en desuso de Oracle 12c y hacia adelante debido a razones de rendimiento no óptimas.

El segundo ejemplo (XmlType Tabla) tiene, si la sintaxis no es más específico que el anterior, también SecureFile CLOB o SecureFile Binary XML.

El ejemplo de la columna XMLType es más "SQL" nativo en su uso (insertar XML en la columna, seleccione * de la tabla donde xmlcolumn etc), eran la tabla XMLType es más nativa XML (insertar XML en la tabla XML, (X) consulta "doc" uso).

mesas XmlType se pueden utilizar fácilmente con la XMLDB XDB repositorio ( "jerarquía habilitada"), que se puede utilizar con automáticamente schredding XML a través de, por ejemplo, FTP, WebDAV o Queried acceso a través de HTTP. Hacer a esta extensión comportamiento, sino que también están protegidos a través de implementaciones de seguridad XMLDB ACL.

columnas XMLType puede tener el mismo FTP / WebDAV / HTTP características pero la aplicación de esta funcionalidad no es tan "fuera de la caja" al igual que con el ejemplo de la tabla XMLType.

funcionalidad BTW objeto Oracle orientado se introdujo en Oracle 8.0.

Los dos ejemplos anteriores, en su forma actual, dará lugar a las alternativas SecureFile que no tienen nada que ver con la funcionalidad orientada a objetos.

Para consultar todas las diferencias en los casos de uso de XMLType y más en la página principal 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 / base de datos / base de datos de tecnologías / XMLDB / overview / index.html

Más información e información comos se pueden encontrar en el foro de Oracle XMLDB y / o en www.xmldb.nl (por ejemplo, http://www.liberidu.com/blog/2007/06/24/oracle-11g-xmltype-storage-options/ para ver algunas diferencias en cuanto a las diferencias de sintaxis entre las opciones de almacenamiento XMLType)

HTH

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top