一个)

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

代码来自 这里.

在第一个中,我们正在创建一列类型 XMLTYPE. 。第二个人做什么?我什么时候应该使用第一个或第二个?

有帮助吗?

解决方案

第二个语句是创建一个对象表。

几乎从来没有真正想使用对象表。这是Oracle使数据库对象导向的8I时间范围中引入的。尽管许多面向对象的PL/SQL增强功能很有用,但我建议使用SQL中的对象类型。

其他提示

...但是再……XML与SQL无关,因此某些正常的推理可能不应用...(例如,关于对象类型)。

第一个示例是XMLType,并取决于您的数据库版本,基础存储的定义可能是SecureFile Clob或SecureFile二进制XML。由于表现不佳的原因,将第一个从Oracle 12C及以后弃用。

第二个示例(XMLType表)如果语法不像上述更具体,则具有Securefile Clob或SecureFile二进制XML。

XMLType列示例在其使用中更为“ SQL”本地(将XML插入列中,从表中select * XMLCOLUMN等)是XMLType表是更多的XML本机(将XML XML XML插入XML表中,(x)QUERY“ doc” doc“ doc”“”。用法)。

XMLType表可以轻松地与XMLDB XDB存储库(“启用层次结构”)一起使用,可以与自动通过XML Schredding一起使用,例如FTP,WebDAV或通过HTTP访问进行查询。执行此行为扩展,还可以通过XMLDB ACL安全实现来保护它们。

XMLType列可以具有相同的FTP/WebDAV/HTTP特征,但是此功能的实现并不像XMLType表示例那样“脱颖而出”。

BTW Oracle面向对象的功能是在Oracle 8.0中引入的。

上面的两个示例,以当前形式,都将导致安全文件替代方案,这些替代方案与对象方向的功能无关。

查看XMLType用例的差异,以及在主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

可以在Oracle XMLDB论坛和/或www.xmldb.nl上找到更多信息和HOWTO信息(例如 http://www.liberidu.com/blog/2007/06/24/oracle-11g-xmltype-storage-options/ 查看有关XMLType存储选项之间语法差异的一些差异)

Hth

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top