我在XMLTYPE字段检索中用了existNodes函数,在xpath表达式中希望比较日期,但似乎没有日期比较函数,只好用字符串比较来代替,如晚于“2004-01-01”使用  //*[字段〉"2004-01-01"],但结果什么都没检索到,为啥?

解决方案 »

  1.   

    字段 > to_date('2004-01-01','yyyy-mm-dd')
      

  2.   

    在sqlplus或pl/sql中试一下:select sysdate from dual;
    select sysdate-10 from dual;
    select sysdate-to_date('2004-01-01','yyyy-mm-dd') from dual;
      

  3.   

    都是以字符串存储的,所以字符比较好了。 FYI:-- XML Source File
    <company CID="1"> 
          <ID>0001</ID> 
          <NAME>ORACLE</NAME> 
          <COUNTRY CTID="1"> 
            <COUNTRY_CODE>USA</COUNTRY_CODE> 
            <COUNTRY_CODE>CHINA</COUNTRY_CODE> 
            <COUNTRY_CODE>UK</COUNTRY_CODE> 
          </COUNTRY> 
    </company>
    SQL> UPDATE XMLCONTENT
      2     SET xmlvalue = updateXML(xmlvalue,'/company/NAME/text()','mantisXF')
      3   WHERE XMLID = 1
      4     AND EXISTSNODE(xmlvalue,'/company[NAME="ORACLE"]') = 1;1 row updatedSQL> COMMIT;Commit completeSQL> SELECT EXTRACT(XMLVALUE,'/company/NAME/text()').getStringVal()
      2    FROM XMLCONTENT
      3   WHERE XMLID = 1;EXTRACT(XMLVALUE,'/COMPANY/NAM
    --------------------------------------------------------------------------------
    mantisXF
      

  4.   

    我是希望在xpath中用字符串比较函数,‘=’可以‘>’‘<’不行,好怪