一个)
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
。第二个是做什么的?我什么时候应该使用第一个或第二个?
第二条语句是创建一个对象表。
几乎从来没有真正想要使用对象表的情况。这是在 8i 时间框架中引入的东西,当时 Oracle 正在使数据库面向对象。虽然许多面向对象的 PL/SQL 增强功能很有用,但我不推荐在 SQL 中使用对象类型。
...但话又说回来... XML 与 SQL 无关,所以一些正常的推理可能不适用...(例如关于对象类型)。
第一个示例是 XMLType,根据您的数据库版本,基础存储定义可能是 Securefile CLOB 或 Securefile Binary XML。由于非最佳性能原因,第一个从 Oracle 12c 及更高版本已弃用。
第二个示例(XMLtype 表)如果语法不像上面那样更具体,还有 Securefile CLOB 或 Securefile Binary XML。
XMLType 列示例在其使用中更加“SQL”原生(将 XML 插入列,从 xmlcolumn 的表中选择 * 等),如果 XMLType 表更 XML 原生(将 XML 插入 XML 表,(X)查询“doc”用法)。
XMLtype 表可以很容易地与 XMLDB XDB 存储库(“启用层次结构”)一起使用,它可以与通过例如 FTP、WebDaV 或通过 HTTP 访问的查询的自动 XML schredding 一起使用。对此行为扩展,它们也通过 XMLDB ACL 安全实现受到保护。
XMLType 列可以具有相同的 FTP/WebDAV/HTTP 特征,但此功能的实现不像 XMLType 表示例那样“开箱即用”。
BTW Oracle 面向对象的功能是在 Oracle 8.0 中引入的。
以上两个示例,以其当前形式,将导致与面向对象功能无关的安全文件替代方案。
在 XMLDB 主页上查看 XMLType 用例的差异以及更多内容
http://www.oracle.com/technetwork/database/database-technologies/xmldb/overview/index.html
更多信息和操作方法信息可以在 Oracle XMLDB 论坛和/或 www.xmldb.nl 上找到(例如http://www.liberidu.com/blog/2007/06/24/oracle-11g-xmltype-storage -options/查看有关 XMLType 存储选项之间语法差异的一些差异)
高温高压