You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by kiran vuppla <ki...@yahoo.com> on 2008/05/10 19:03:13 UTC

XML Parsing using Oracle10g

Hi,

I need to write a SQL to get the output shown below from XML file (sample below). I have written an SQL but it is giving an exception "ORA-19279: XQuery dynamic type mismatch: expected singleton sequence - got multi-item sequence". Can some one help me.


The SQL Which I have tried:

select tbl."img" as image, tbl."altText" as altText, tbl."url" as url, tbl."text" as text 
from site_module m 
, XMLTABLE ('//show" PASSING m.configuration_data 
COLUMNS "img" varchar2(1024) PATH '//image', "altText" varchar2(1024) PATH '//imageAltText',
"url" varchar2(1024) PATH '//links/link/linkUrl', "text" varchar2(1024) PATH '//links/link/linkText') tbl 

Sample XML File That I am Reading:

<content>
   <feature>
    <body>Sample Text</body>
    <links>
      <link>
        <linkUrl>http://www.planetgreen.discovery.com</linkUrl>
        <linkText>Home Page</linkText>
      </link>
      <link>
        <linkUrl>http://www.google.com</linkUrl>
        <linkText>Google</linkText>
      </link>
      <link>
        <linkUrl>en.wikipedia.org/wiki/Cron</linkUrl>
        <linkText>Cron</linkText>
      </link>
    </links>
  </feature>
  <showList>
    <show>
      <image>path/to/Image</image>
      <imageAltText>Alternate</imageAltText>
      <showLink>Link to Show</showLink>
      <headline>Lorem Ipsum Dolor Sit Amet</headline>
      <links>
        <link>
          <linkUrl>en.wikipedia.org/wiki/Cron/test.html</linkUrl>
          <linkText>Cron2</linkText>
        </link>
        <link>
            <linkUrl>http://www.google.com</linkUrl>
            <linkText>Google</linkText>
        </link>
      </links>
    </show>
  </showList>
  <showList>
    <show>
      <image>path/to/Image2</image>
      <imageAltText>Alternate2</imageAltText>
      <showLink>Link to Show2</showLink>
      <headline>Lorem Ipsum Dolor Sit Amet</headline>
      <links>
        <link>
          <linkUrl>en.wikipedia.org/wiki/Cron/tes2t.html</linkUrl>
          <linkText>Cron4</linkText>
        </link>
      </links>
    </show>
  </showList>
</content>

Output should be:

          IMAGE
         ALTTEXT
         URL
         TEXT
             path/to/Image
         Alternate
         en.wikipedia.org/wiki/Cron/test.html
         Cron2
             path/to/Image
         Alternate
         http://www.google.com
         Google
             path/to/Image2
         Alternate2
         en.wikipedia.org/wiki/Cron/tes2t.html
         Cron4
        
 
       
---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile.  Try it now.