Oracle 12g XmlType存储为二进制XML(选择问题)

时间:2016-02-11 12:52:31

标签: sql xml oracle oracle-xml-db binary-xml

我正在尝试从DB Oracle12g中选择XML。 XML存储在表中(XMLType存储为二进制XML),我无法使用where-condition创建Select查询。我的问题是查询没有返回任何记录。我正在使用Oracle SQL Developer 4.1.0.19。

我的查询示例

SELECT OBJECT_VALUE
  FROM A_STUDENT_BIN
 WHERE existsNode(object_value,'//Student[@RodneCislo="123"]') = 1;

SELECT OBJECT_VALUE
  FROM A_STUDENT_BIN
 WHERE extract(OBJECT_VALUE, '//Student[@RodneCislo="123"]') IS NOT NULL;

表格结构:

CREATE TABLE a_student_bin OF XMLTYPE XMLTYPE STORE AS BINARY XML;

插入XML

<?xml version="1.0" encoding="windows-1250" ?>
<Vystup>
  <Student RodneCislo="123">
    <Jmeno>Pepa</Jmeno>
    <Prijmeni>Omacka</Prijmeni>
    <TitulPred>Ing.</TitulPred>
    <TitulZa></TitulZa>
  </Student>
</Vystup>

XML通过查询插入到数据库中:

insert into A_STUDENT_BIN
values (XmlType( bfilename('MYDIR','student.xml'),
                 nls_charset_id('EE8MSWIN1250')   );

0 个答案:

没有答案