Oracle 9i提供的XML内置特性: Oracle 9i支持XMLType类型,它是一种Oracle 9i系统定义的对象类型。XMLType有内置的函数,有力的提供了推XML的创建,索检,索引等功能。 用户可以使用SQL函数动态的产生XML文档。这些函数有:SYS_XMLGEN和SYS_XMLAGG和PL/SQL包DBMS_XMLGEN。
如何使用XMLType创建XMLType列:CREATE TABLE warehouses( warehouse_id NUMBER(3), warehouse_spec SYS.XMLTYPE, warehouse_name VARCHAR2(35), location_id NUMBER(4)); 插入XMLType列数据INSERT into warehouses (warehouse_id, warehouse_spec) VALUES (1001, sys.XMLType.createXML( ’<Warehouse whNo="100"> <Building>Owned</Building> </Warehouse>’)); createXML的输入参数可以是任何的返回为varchar2的表达式或者式CLOB。CreateXML能够检测XML是否的符合合适的,但是它不能检查XML的有效性。
使用在XMLType列上sql查询SELECT w.warehouse_spec.extract(‘/Warehouse/Building/text()’).getStringVal() "Building" FROM warehouses w warehouse_spec是一个XMLType列,Extract()是操作在上面的函数 查询结果如下: Building —————– Owned 更新XMLType的列UPDATE warehouses SET warehouse_spec = sys.XMLType.createXML( ’<Warehouse whono="200"> <Building>Leased</Building> </Warehouse>’)); 删去XMLType的列DELETE FROM warehouses e WHERE e.warehouse_spec.extract(’//Building/text()’).getStringVal() = ’Leased’; |