Question

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

.

Dans la première, nous créons une colonne de type XMLTYPE. Qu'est-ce que le second fait? Quand dois-je utiliser la première ou la deuxième?

Était-ce utile?

La solution

La deuxième déclaration crée une table d'objet.

Il est presque jamais le cas que vous voulez vraiment utiliser une table d'objet. C'était quelque chose qui a été introduit dans le laps de temps 8i lorsque Oracle a fait l'objet de base de données orientée. Alors que beaucoup de l'objet orienté PL / SQL améliorations ont été utiles, en utilisant les types d'objets dans SQL n'est pas quelque chose que je vous recommande.

Autres conseils

... mais là encore ... XML n'a rien à voir avec SQL, donc un raisonnement normal pourrait ne pas appliquer ... (en ce qui concerne les types d'objets par exemple).

Le premier exemple est un XMLType et en fonction de votre version de base de données la définition de magasin sous-jacente pourrait être securefile CLOB ou securefile Binary XML. Le premier est dépréciée à partir 12c Oracle et les années suivantes pour des raisons de performances non optimales.

Le deuxième exemple (XMLType tableau) a, si la syntaxe est pas plus spécifique comme ci-dessus, également securefile CLOB ou securefile XML binaire.

L'exemple de colonne XMLType est plus « SQL » natif dans son utilisation (insertion XML dans la colonne, sélectionnez * de table où xmlcolumn etc.), étaient la table XMLType est plus natif XML (insérer XML dans la table XML, (X) requête utilisation "doc").

tables de XMLType peuvent être facilement utilisés avec le référentiel XMLDB XDB ( « hiérarchie activée »), qui est peut être utilisé avec XML automatiquement schredding via FTP par exemple, WebDav ou Interrogation accès via HTTP. Est-ce que cette extension de comportement, ils sont également protégés par des implémentations de sécurité XMLDB ACL.

colonnes XMLType peut avoir le même FTP / caractéristiques WebDAV / HTTP, mais la mise en œuvre de cette fonctionnalité est pas « hors de la boîte » comme dans l'exemple de table XMLType.

fonctionnalité orientée objet BTW Oracle a été introduit dans Oracle 8.0.

Les deux exemples ci-dessus, dans leur forme actuelle, se traduira par des solutions de rechange SecureFile qui n'a rien à voir avec l'objet fonctionnalité Orienté.

Avoir un regard sur les différences dans les cas d'utilisation de XMLType et plus sur la principale page d'accueil de 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 données / base de données-technologies / xmldb / Présentation / index.html

Plus d'infos et des informations de documentation peut être trouvée sur le forum Oracle XMLDB et / ou sur www.xmldb.nl (par exemple http://www.liberidu.com/blog/2007/06/24/oracle-11g-xmltype-storage-options/ pour voir quelques différences en ce qui concerne les différences de syntaxe entre les options de stockage de XMLType)

HTH

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top