ÆüÊë¤é¤·SE¤ÎÆü¡¹¹Íθ¡¡¡Á̾¸Å²°¤Ç¥ª¥Õ¥·¥ç¥¢ ¤½¤·¤Æ¥»¥ì¥Ö¤Ø¡©¡Á

SE¶È¤ò¤·¤Æ¤¤¤ë»ä¤ÎÆÃ¤Ë»Å»ö¤ò¤·¤Æ¤¤¤¯¤Ê¤«¤Ç¹Í¤¨¤ë¤³¤È¤Ê¤É¤òµ­ºÜ¤·¤Æ¤¤¤­¤¿¤¤¤È»×¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£
ËåÉ×ÉØ¤¬Êì¿Æ¤Î¤È¤³¤ËÍè¤Æ¤ª¤ê¡¢ÌŤûҤȽéÂÐÌÌ¢ö
¤Þ¤¡Àµ¼°¤Ë¤Ï¤ªÊ¢¤ÎÃæ¤Ë¤¤¤ë¤È¤­¤Ë°ìÅÙ¤¢¤Ã¤Æ¤Ï¤¤¤ë¤±¤É¡¢¤½¤ê¤ã¸«¤¨¤Ê¤¤¤«¤é¤ï¤«¤é¤ó¤ï¤Ê¤¡¡Ä

¤½¤ó¤Ç¤Þ¤À£³¤«·î¤Ê¤Î¤Ç¾®¤µ¤¤¡ª¥Ç¥¸¥«¥á¤Ç»£¤Ã¤¿¼Ì¿¿¤òÁ÷¤Ã¤Æ¤¯¤ì¤¿¤ê¡¢
¥á¥Ã¥»¥ó¥¸¥ã¡¼¤Ç¥«¥á¥éÉÕ¤­¤ÇÏ䷤Ƥ¿¤ê¤·¤¿¤Î¤Ç¡¢»Ñ¤Ï¸«¤¿¤³¤È¤¢¤Ã¤Ã¤Æ¡¢
¤½¤ó»þ¤Ë¤Ï¤º¤¤¤Ö¤óÂ礭¤¯¤ß¤¨¤Æ¤¿¤ó¤À¤è¤Í¡£
¥Ï¡¼¥Õ¤À¤«¤é£³¤«·î¤Ã¤Æ¤¤¤Ã¤Æ¤âÌÜÉ¡¤â¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Æ¡¢¥Ë¥³¥Ë¥³¤·¤¿¤ê¤â¤¹¤ë¤·¤«¤ï¤¤¤é¤·¤¤¢ö

¤Þ¤¿¡¢¤Û¤È¤ó¤Éµã¤«¤Ê¤¤¡£
¤ªÊ¢¤¬¤¹¤¤¤¿»þ¤Ë¤Ïµã¤¤¤¿¤ê¤¹¤ë¤±¤É¡¢¥¢¡Á¥¢¡ÁÃý¤Ã¤¿¤ê¡¢²Î¤Ã¤Æ¤¿¤é°ì½ï¤Ë²Î¤¦¤è¤¦¤Ê´¶¤¸¤À¤Ã¤¿¤ê¡¢
¤º¤Ã¤È­¤òư¤«¤·¤Æ¤¿¤ê¡Ä

Ëå¤ÈƱ¤¸¤ÇÊ⤤¤¿¤ê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤é¤º¤Ã¤Èư¤¤¤Æ¤½¤¦¤À¡Ä(^_^;)
¼«Ê¬¤Î¤È¤³¤Î»Ò¤Ç¤Ï¤Ê¤¤¤±¤É¡¢¤É¤ó¤Ê´¶¤¸¤Ë°é¤Ã¤Æ¤¤¤¯¤Î¤«³Ú¤·¤ß¤Ç¤¹¤Í¤§¡ù


¤Ï¤¤¡¢²¿¤À¤«ÃΤé¤ó¤¦¤Á¤Ë¤³¤ó¤Ê¤Î¤Ç¤­¤ë¤ß¤¿¤¤¤Ç¤¹¡£
¡ÖXML¥Þ¥¹¥¿¡¼¡§¥×¥í¥Õ¥§¥Ã¥·¥ç¥Ê¥ë¡Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¡Ë¡×

¤¦¤à¤¦¤àº£Ç¯¤Î12·î¤«¤é³«»Ï¤Ã¤Æ¡Ä¤Þ¤À¤¸¤ã¤ó(¡¼¡¼;)
¤½¤ó¤Ç¤â¤Ã¤Æ¤Ê¤ó¤Ë¤»¤èXQuery¤À¤È¤«Xpath¤â2.0¤¬½ÐÂê¤ÎÂоݤȤʤë¤ß¤¿¤¤¤Ç¤¹¤Í¡Á¡£

¤½¤Î¾XML_DB¤Î´Ø¿ô¤È¤«¤âSQLɸ½à¤È¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ë´Ø¤·¤Æ¤Ï½ÐÂꤵ¤ì¤ë¤Î¤«¤Ê¡©

¤¢¤Ã¡¢¤¢¤È¾åµ­¤Ë¤È¤â¤Ê¤¤º£¤Þ¤Ç¤ÎXML¥Þ¥¹¥¿¡¼¡§¥×¥í¥Õ¥§¥Ã¥·¥ç¥Ê¥ë¤Ï
̾¾Î¤ÎÊѹ¹¤¬¤¢¤ê¤Þ¤·¤¿¡£
¤½¤Î̾¤â¡Ä¸å¤í¤Ë¡Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¡Ë¤Æ¤Ä¤¤¤¿¤À¤±(¡¼¡¼;)

¤¤¤ä¤¡¡ÁXML¤Ã¤Æ¤Ö¤Ã¤Á¤ã¤±¤«¤Ê¤êÂ礭¤¤¥«¥Æ¥´¥ê¤Ç¤·¤«¤Ê¤¤¤Î¤Ç¡¢
¤¤¤¯¤é¤Ç¤â»î¸³Áý¤ä¤»¤½¤¦¤À¤Ê¤¡¡Ä

¤½¤¦¤¹¤ê¤ã¶â¤âÌÙ¤«¤ë¤Ã¤Æ¤«¡©

¤½¤ó¤ÊÊ¢¹õ¤¤¹Í¤¨¤â»ý¤Ã¤Æ¤ß¤¿¤ê¤·¤Æ¤¤¤ë»ä¤Ç¤¹¤¬¡¢
¤»¤Ã¤«¤¯º£²ó¿¾¯¤Ê¤ê¤È¤â¤«¤¸¤Ã¤¿¤Î¤Ç¼èÆÀ¤Ç¤­¤ë¤è¤¦¤·¤Æ¤¤¤­¤¿¤¤¤â¤Î¤Ç¤¹¡£

¤Ï¤¤¡¢ÂçʬÃÙ¤ì¤Þ¤·¤¿¤¬<a href="http://forthclover.blog56.fc2.com/blog-entry-132.html" target="_blank">°ÊÁ°¤Ë¤¤¤Ã¤Æ¤¤¤¿ÆâÍÆ</a>¤ò¤Á¤ã¤ó¤È¤Î¤»¤Þ¤¹¡£


¥Ç¡¼¥¿¤È¤·¤Æ¤Ï°ÊÁ°¤Î<a href="http://forthclover.blog56.fc2.com/blog-entry-129.html" target="_blank">¤³¤Îµ­»ö</a>¤ò»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤­¤¿¤¤¤È»×¤¤¤Þ¤¹¡£


select
  extractvalue(value(compInfo), '/²ñ¼Ò¾ðÊó/²ñ¼Ò/¼Ò̾') as ²ñ¼Ò̾,
  extractvalue(value(detail), '/¾ÜºÙ/text()') as »ö¶ÈÆâÍÆ¾ÜºÙ
from
  ²ñ¼Ò¾ðÊóXML¥Æ¡¼¥Ö¥ë compInfo,
  table(xmlsequence(extract(value(compInfo), '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'))(+) detail


¤ÈƱÍͤȤ·¤Æ¡¢¤«¤Ä»ö¶ÈÆâÍÆ¾ÜºÙ¤´¤È¤Ë½ç½ø¤òÉÕ¤±¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢


select
  company_t.name,
  activity_t.seq_no,
  activity_t.detail
from
  ²ñ¼Ò¾ðÊóXML¥Æ¡¼¥Ö¥ë compInfo,
 ,XMLTable(
    '/²ñ¼Ò¾ðÊó'
      PASSING compInfo.Object_value
      COLUMNS
        name VARCHAR2(255) PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/¼Ò̾/text()',
        activity_xml XMLType PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'
    ) AS company_t
 ,XMLTable(
    '/¾ÜºÙ'
      PASSING compInfo.Object_value
      COLUMNS
        SEQ_NO FOR ORDINALITY,
        detail VARCHAR2(255) PATH '/¾ÜºÙ/text()'
    )(+) AS activity_t


¤³¤ì¤Ç´üÂÔ¤¹¤ë·ë²Ì¤È¤·¤Æ¤Ï¡¢


























³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸ 1  ¥È¥ê¥×¥ë¥³¥¹¥È¥À¥¦¥óÀïά
      ¡¦Ãæ¹ñ¥ª¥Õ¥·¥ç¥¢³«È¯
      ¡¦¥ª¡¼¥×¥ó¥½¡¼¥¹¥½¥Õ¥È¥¦¥§¥¢
      ¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È»Ø¸þ
³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸ 1     ¢£»ö¶ÈÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
     AURORA ´ð´´.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
    - ÈÎÇä´ÉÍý·Ï
      ¸«ÀÑ,¼õÃí,Çä¾å,½Ð²Ù¥â¥¸¥å¡¼¥ë
     - ¹ØÇã´ÉÍý·Ï
      °ÍÍê,ȯÃí,»ÅÆþ,Æþ²Ù¥â¥¸¥å¡¼¥ë
     - ºß¸Ë´ÉÍý·Ï
      Æþ¸Ë,½Ð¸Ë,ºß¸Ë¥â¥¸¥å¡¼¥ë
     ­¡É¬Íפʥ⥸¥å¡¼¥ë¤Î¤ß¤òÁªÂò
     ­¢¥â¥¸¥å¡¼¥ë¤ò¼«Í³¤Ë¥«¥¹¥¿¥Þ¥¤¥º
     ­£ºâ̳²ñ·×¡¦EDI¤Ê¤É¤È¤ÎϢư
³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸ 2     ¢£Áí̳ÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
     AURORA Áí̳.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
     ¶ÐÂÕ´ÉÍý,È÷ÉÊ´ÉÍý,»ÜÀßÀßÈ÷ͽÌó,
     ·ÐÈñÀº»»,¼ÒÆâ¥Õ¥¡¥¤¥ëÊØ,
     ÅÁ¸À´ÉÍý,etc...
³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸ 3     ¢£·Ð±Ä¿Ø¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
     OLAP/BI¤Ë¤è¤ë·Ð±Ä¾ðÊóʬÀÏ
     AURORA ´ð´´.EAI¤ËÃßÀѤµ¤ì¤¿¡ÖÇä¾å¡×¡Ö»ÅÆþ¡×¥Ç¡¼¥¿¤òʬÀϤ¹¤ë¤¿¤á¤Î»ÅÁȤߤò¹½ÃÛ¤·¡¢
     ¡Ö¸ÜµÒʬÀÏ(CRM)¡×¡Ö¾¦ÉÊʬÀÏ(MD)¡×¤Î¥Î¥¦¥Ï¥¦¤òÄó¶¡
     - OpenOLAP(¥ª¡¼¥×¥ó¥½¡¼¥¹)
     - New WorkFRIEND(JBCC)
      ¥Ý¡¼¥¿¥ë(CMS)¤Ë¤è¤ëÃμ±·Ð±Ä
     CMS¤Ë¤è¤ë¼ÒÆâ¥Ý¡¼¥¿¥ë,¥³¥ß¥å¥Ë¥Æ¥£¥µ¥¤¥È¹½ÃÛ¤ò»Ù±ç¤·¡¢
     ¥Ê¥ì¥Ã¥¸¥Þ¥Í¡¼¥¸¥á¥ó¥È¤òÀ®¸ù¤ËƳ¤­¤Þ¤¹
     ÆÀ°ÕÀè¤È¤ÎÃμ±¡¦¾ðÊó¶¦Í­¡¢¼Ò°÷´Ö¤Ë¤ª¤±¤ë
     Ãμ±¡¦¾ðÊó¶¦Í­¤ò¸úΨŪ¤Ë¼Â¸½¤·¡¢¥Ê¥ì¥Ã¥¸¤ò
    ¡¡Í­¸ú¤Ë³èÍѤ¹¤ë·Ð±Ä¤ò»Ù±ç¤·¤Þ¤¹


¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¡£
¤Ï¤º¤Ã¤Æ¤Î¤¬¼Â¹Ô¤·¤Æ¤¤¤Ê¤¤¤«¤é¤Ã¤Æ¤³¤È¤Ç¤ÎÊݾã¤Ç¤¹¡£


¤Á¤ç¤Ã¤ÈXML_DB¤È¿¿·õ¤Ë¸þ¤­¹ç¤¨¤Ð¤ï¤«¤ê¤ä¤¹¤¯¤Ï¤Ê¤ê¤Þ¤¹¤¬¡¢
XMLTable(
    '/²ñ¼Ò¾ðÊó'
      PASSING compInfo.Object_value
      COLUMNS
        name VARCHAR2(255) PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/¼Ò̾/text()',
        activity_xml XMLType PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'
    ) AS company_t
¤Î¤«¤·¤ç¤Ç¡¢
PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'¤òXMLTypeÎó¤È¤·¤ÆÄêµÁ¤·¤Þ¤¹¡£
¤³¤³¤Ç¥Ý¥¤¥ó¥È¤ÏÂоݤȤ·¤Æ¤¤¤ë¤Î¤¬
¡Ö
    '/²ñ¼Ò¾ðÊó'
      PASSING compInfo.Object_value
¡×
¤Ç¤¹¤Î¤Ç¡¢1¤Ä¤Îobject_value¤Ä¤Þ¤ê¤Ï1¤Ä¤ÎXML¤Î½¸¤Þ¤ê¤ÎÃæ¤Ë¤Ï
PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'¤¬Ê£¿ô¸ºß¤¹¤ë¤³¤È¤Ë¤Ê¤ê¡¢
1¹Ô¤ËÊ£¿ô·ï¿ô¤Î³ºÅö¤¬¤¢¤ë¤È¤¤¤¦·Á¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
1²óÌܤÎXMLTable̵¤¤¤Ç¤Ï¡ÖXMLTypeÎó¡×¤È¤·¤Þ¤¹¡£
¤½¤·¤Æ2²óÌܤÎXMLTable¤Ç¤Ï¡¢1²óÌܤ˻ØÄꤷ¤¿¡ÖXMLTypeÎó¡×¤È¤·¤¿¡Öactivity_xml¡×¤ò¸µ¤Ë¤·¤Æ¤ª¤ê¡¢¤³¤Î¤È¤­¤Ë¤Ï
XMLTypeÎó¤ÎÃͤȤ·¤Æ¡¢
¡Ø
      &lt;¾ÜºÙ&gt; 
        ¥È¥ê¥×¥ë¥³¥¹¥È¥À¥¦¥óÀïά
            ¡¦Ãæ¹ñ¥ª¥Õ¥·¥ç¥¢³«È¯
            ¡¦¥ª¡¼¥×¥ó¥½¡¼¥¹¥½¥Õ¥È¥¦¥§¥¢
            ¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È»Ø¸þ
      &lt;/¾ÜºÙ&gt; 
¡Ù
¡Ø
      &lt;¾ÜºÙ&gt; 
        ¢£»ö¶ÈÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
          AURORA ´ð´´.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
          - ÈÎÇä´ÉÍý·Ï
            ¸«ÀÑ,¼õÃí,Çä¾å,½Ð²Ù¥â¥¸¥å¡¼¥ë
          - ¹ØÇã´ÉÍý·Ï
            °ÍÍê,ȯÃí,»ÅÆþ,Æþ²Ù¥â¥¸¥å¡¼¥ë
          - ºß¸Ë´ÉÍý·Ï
            Æþ¸Ë,½Ð¸Ë,ºß¸Ë¥â¥¸¥å¡¼¥ë
          ­¡É¬Íפʥ⥸¥å¡¼¥ë¤Î¤ß¤òÁªÂò
          ­¢¥â¥¸¥å¡¼¥ë¤ò¼«Í³¤Ë¥«¥¹¥¿¥Þ¥¤¥º
          ­£ºâ̳²ñ·×¡¦EDI¤Ê¤É¤È¤ÎϢư
      &lt;/¾ÜºÙ&gt; 
      &lt;¾ÜºÙ&gt; 
        ¢£Áí̳ÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
          AURORA Áí̳.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
          ¶ÐÂÕ´ÉÍý,È÷ÉÊ´ÉÍý,»ÜÀßÀßÈ÷ͽÌó,
          ·ÐÈñÀº»»,¼ÒÆâ¥Õ¥¡¥¤¥ëÊØ,
          ÅÁ¸À´ÉÍý,etc...
      &lt;/¾ÜºÙ&gt; 
      &lt;¾ÜºÙ&gt; 
        ¢£·Ð±Ä¿Ø¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
          OLAP/BI¤Ë¤è¤ë·Ð±Ä¾ðÊóʬÀÏ
          AURORA ´ð´´.EAI¤ËÃßÀѤµ¤ì¤¿¡ÖÇä¾å¡×¡Ö»ÅÆþ¡×¥Ç¡¼¥¿¤òʬÀϤ¹¤ë¤¿¤á¤Î»ÅÁȤߤò¹½ÃÛ¤·¡¢
          ¡Ö¸ÜµÒʬÀÏ(CRM)¡×¡Ö¾¦ÉÊʬÀÏ(MD)¡×¤Î¥Î¥¦¥Ï¥¦¤òÄó¶¡
          - OpenOLAP(¥ª¡¼¥×¥ó¥½¡¼¥¹)
          - New WorkFRIEND(JBCC)
            ¥Ý¡¼¥¿¥ë(CMS)¤Ë¤è¤ëÃμ±·Ð±Ä
          CMS¤Ë¤è¤ë¼ÒÆâ¥Ý¡¼¥¿¥ë,¥³¥ß¥å¥Ë¥Æ¥£¥µ¥¤¥È¹½ÃÛ¤ò»Ù±ç¤·¡¢
          ¥Ê¥ì¥Ã¥¸¥Þ¥Í¡¼¥¸¥á¥ó¥È¤òÀ®¸ù¤ËƳ¤­¤Þ¤¹
          ÆÀ°ÕÀè¤È¤ÎÃμ±¡¦¾ðÊó¶¦Í­¡¢¼Ò°÷´Ö¤Ë¤ª¤±¤ë
          Ãμ±¡¦¾ðÊó¶¦Í­¤ò¸úΨŪ¤Ë¼Â¸½¤·¡¢¥Ê¥ì¥Ã¥¸¤ò
          Í­¸ú¤Ë³èÍѤ¹¤ë·Ð±Ä¤ò»Ù±ç¤·¤Þ¤¹
      &lt;/¾ÜºÙ&gt; 


¡Ù
¤Î£²¹Ôʬ¤¬Æþ¤Ã¤Æ¤ª¤ê¡¢¤½¤ì¤¾¤ì¤Î¹Ô¤Ë¤Æ¡Ö&lt;¾ÜºÙ&gt; &lt;/¾ÜºÙ&gt; ¡×¤ÎÃæ¿È¤òÊÖ¤¹·Á¤Ë¤Ê¤ê¤Þ¤¹¡£


Ƚ¤ê¤Ë¤¯¤¤¤è¤¦¤Ç¤¢¤ì¤Ð¡¢


select
  company_t.*
from
  ²ñ¼Ò¾ðÊóXML¥Æ¡¼¥Ö¥ë compInfo,
 ,XMLTable(
    '/²ñ¼Ò¾ðÊó'
      PASSING compInfo.Object_value
      COLUMNS
        name VARCHAR2(255) PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/¼Ò̾/text()',
        activity_xml XMLType PATH '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'
    ) AS company_t


¤ò¼Â¹Ô¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
·ë²Ì¤È¤·¤Æ














³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸    &lt;¾ÜºÙ&gt; 
    ¥È¥ê¥×¥ë¥³¥¹¥È¥À¥¦¥óÀïά
      ¡¦Ãæ¹ñ¥ª¥Õ¥·¥ç¥¢³«È¯
      ¡¦¥ª¡¼¥×¥ó¥½¡¼¥¹¥½¥Õ¥È¥¦¥§¥¢
      ¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È»Ø¸þ
   &lt;/¾ÜºÙ&gt; 
³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸    &lt;¾ÜºÙ&gt; 
    ¢£»ö¶ÈÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
     AURORA ´ð´´.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
     - ÈÎÇä´ÉÍý·Ï
      ¸«ÀÑ,¼õÃí,Çä¾å,½Ð²Ù¥â¥¸¥å¡¼¥ë
     - ¹ØÇã´ÉÍý·Ï
      °ÍÍê,ȯÃí,»ÅÆþ,Æþ²Ù¥â¥¸¥å¡¼¥ë
     - ºß¸Ë´ÉÍý·Ï
      Æþ¸Ë,½Ð¸Ë,ºß¸Ë¥â¥¸¥å¡¼¥ë
     ­¡É¬Íפʥ⥸¥å¡¼¥ë¤Î¤ß¤òÁªÂò
     ­¢¥â¥¸¥å¡¼¥ë¤ò¼«Í³¤Ë¥«¥¹¥¿¥Þ¥¤¥º
     ­£ºâ̳²ñ·×¡¦EDI¤Ê¤É¤È¤ÎϢư
   &lt;/¾ÜºÙ&gt; 
   &lt;¾ÜºÙ&gt; 
    ¢£Áí̳ÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
     AURORA Áí̳.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
     ¶ÐÂÕ´ÉÍý,È÷ÉÊ´ÉÍý,»ÜÀßÀßÈ÷ͽÌó,
     ·ÐÈñÀº»»,¼ÒÆâ¥Õ¥¡¥¤¥ëÊØ,
     ÅÁ¸À´ÉÍý,etc...
   &lt;/¾ÜºÙ&gt; 
   &lt;¾ÜºÙ&gt; 
    ¢£·Ð±Ä¿Ø¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
     OLAP/BI¤Ë¤è¤ë·Ð±Ä¾ðÊóʬÀÏ
     AURORA ´ð´´.EAI¤ËÃßÀѤµ¤ì¤¿¡ÖÇä¾å¡×¡Ö»ÅÆþ¡×¥Ç¡¼¥¿¤òʬÀϤ¹¤ë¤¿¤á¤Î»ÅÁȤߤò¹½ÃÛ¤·¡¢
     ¡Ö¸ÜµÒʬÀÏ(CRM)¡×¡Ö¾¦ÉÊʬÀÏ(MD)¡×¤Î¥Î¥¦¥Ï¥¦¤òÄó¶¡
     - OpenOLAP(¥ª¡¼¥×¥ó¥½¡¼¥¹)
     - New WorkFRIEND(JBCC)
      ¥Ý¡¼¥¿¥ë(CMS)¤Ë¤è¤ëÃμ±·Ð±Ä
     CMS¤Ë¤è¤ë¼ÒÆâ¥Ý¡¼¥¿¥ë,¥³¥ß¥å¥Ë¥Æ¥£¥µ¥¤¥È¹½ÃÛ¤ò»Ù±ç¤·¡¢
     ¥Ê¥ì¥Ã¥¸¥Þ¥Í¡¼¥¸¥á¥ó¥È¤òÀ®¸ù¤ËƳ¤­¤Þ¤¹
     ÆÀ°ÕÀè¤È¤ÎÃμ±¡¦¾ðÊó¶¦Í­¡¢¼Ò°÷´Ö¤Ë¤ª¤±¤ë
     Ãμ±¡¦¾ðÊó¶¦Í­¤ò¸úΨŪ¤Ë¼Â¸½¤·¡¢¥Ê¥ì¥Ã¥¸¤ò
     Í­¸ú¤Ë³èÍѤ¹¤ë·Ð±Ä¤ò»Ù±ç¤·¤Þ¤¹
   &lt;/¾ÜºÙ&gt; 


 


¤È¤Ê¤ë¤Ï¤º¤Ç¤¹¤è¡£

Oracle·¯¤ÇXML¥Ç¡¼¥¿¾å¤Ë¤ÆÁ´Ê¸¸¡º÷¤ò¤¹¤ë¤Ë¤Ï¡Ä
¡Ö¤³¤³¡×¤ò»²¾È¤¯¤À¤µ¤¤¡£

SQL´Ø¿ôcontains¤ª¤è¤ÓXPath´Ø¿ôora:contains¤Î»ÈÍÑÊýË¡
¤Ã¤Æ»ö¤Ç¤Þ¤È¤Þ¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£

¤Þ¤¡¸½¾õ¤Ï¤³¤ì¤°¤é¤¤¤Ç¤·¤ç¤¦¤¬¡¢11g¤¬½Ð¤¿»þ¤Ë¥Õ¥¡¥¤¥ë´ÉÍý¤¢¤¿¤ê¤â¶¯²½¤µ¤ì¤ë¤è¤¦¤Ê¤Î¤Ç¡¢
¤â¤Ã¤È»È¤¤¾¡¼ê¤¬¤è¤¯¤Ê¤ë¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¤Í¡©

»ä¼«¿È¤Ï¤â¤Ã¤ÈXpath´Ø¿ô¤Ë¶¯¤¯¤Ê¤Ã¤ÆÍߤ·¤¤¤«¤Ê¤¡¤È¡Ä¡£
¥Î¡¼¥É¤Î·ï¿ô¤ò¼èÆÀ¤¹¤ë¤Î¤Ë¡¢
count¤È¤«Xpath¤ÇÄêµÁ¤µ¤ì¤¿´Ø¿ô»È¤¨¤ë¤ÈÊØÍø¤À¤È»×¤¦¤ó¤À¤±¤É¤Ê¤¡¡Ä
¤á¤Ã¤Á¤ã´Ê°×Ū¤Ë¤È¤¤¤¦¤³¤È¤Ç¤¢¤ê¤Þ¤¹¤¬¡¢°ÊÁ°¤Ë¾Ò²ð¤·¤¿
Ť¤XMLʸ¾Ï¤òÅÐÏ¿¤¹¤ë»þ¤Î¥¹¥È¥¢¥É¤òÍѤ¤¤Þ¤¹¡£

¤½¤ì¤ÇXMLType¤Î²Õ½ê¤ËÂФ·¤Æ²¼µ­¤Î¤è¤¦¤Êselectʸ¤òȯ¹Ô¤·¤Þ¤¹¡£

select 'declare xmldoc CLOB; begin xmldoc := '''|| a.object_value.getclobval() || '''; insert into xmlTbl values( xmltype(xmldoc) ); end;',chr(13),'/', chr(13) from xmlTbl a

¤³¤ì¤Ç½ÐÎϤµ¤ì¤¿¤â¤Î¤ò¤½¤Î¤Þ¤Þ¥³¥Ô¥Ú¤¹¤ì¤Ð
°ì³ç¤·¤ÆÅÐÏ¿¤Ç¤­¤Þ¤¹¡£

sqlplus¤Ç½ÐÎϤ¹¤ëºÝ¤Ë¤ÏXML¤ÎÍ×ÁǤʤɤ¬ÅÓÃæ¤Ç²þ¹Ô¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¡¢
set long 10000 pages 0 lin 300 ¤Ê¤É¤ÈÉý¤òŬÀڤˤ·¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡£

¤Á¤Ê¤ß¤Ë¤ï¤¿¤¯¤·¤ÏJDeveloper¤Ç¹Ô¤¤¤Þ¤·¤¿¡£

¤ä¤Ã¤Ñ¤³¤¦¤¤¤¦¤Á¤ç¤Ã¤È¥¢¥³¥®¤Ê¤³¤È¤¹¤ë¤Ë¤ÏDBÀ½Éʺî¤Ã¤¿¤È¤³¤Î¤â¤Î¤ò»ÈÍѤ¹¤ì¤Ð
´ê¤Ã¤¿¤È¤ª¤ê¤Î¤³¤È¤·¤Æ¤¯¤ì¤¿¤ê¤·¤Þ¤¹¤Í¢ö


--2007/02/20 ½¤Àµ--
¤Ï¤¤¡¢Æ¬¤Î²óž¤¬¤¤¤¤¿Í¤Ê¤é¾å¤ÎSQL¤ò¤â¤¦¤Á¤ç¤Ã¤Èľ¤·¤Æ¤¿¤ê¤¹¤ë¤Ç¤·¤ç¤¦¤±¤É¡Ä
¢¬¤ÎSQL¤ò
select 'declare xmldoc CLOB; begin xmldoc := '''|| a.object_value.getclobval() || '''; insert into xmlTbl values( xmltype(xmldoc) ); end;' || chr(13) || '/' || chr(13) || chr(13) from xmlTbl a
¤È¤¹¤ì¤Ð¡¢sqlplus¤Ç¤¢¤ì¤ÐSPOOL¤·¤¿·ë²Ì¤è¤ê¥³¥Ô¥Ú¤Ç¼Â¹Ô¤Ç¤­¤Þ¤¹¢ö

¤¢¤È¥Ý¥¤¥ó¥È¤Ï¡Öa.object_value.getclobval()¡×¤Ç¤¹¤«¤Í¡Ä
¤Û¤«¤Îµ­»ö¤Ç½ñ¤¤¤Æ¤Þ¤¹¤¬¡¢getClobVal()¤ÈClob·¿¤Ç¼èÆÀ¤·¤Ê¤¤¤È¡¢
Ť¤XML¤Ï¼èÆÀ¤Ç¤­¤Þ¤»¤ó¡£
¤Þ¤¿Âô»³¥Ç¡¼¥¿¤¬¤¢¤ë¤È¡¢XML·¿¤½¤Î¤â¤Î¤Ç¼èÆÀ¤¹¤ëÊý¤¬¤Ê¤ó¤«»þ´Ö¤¬
¤«¤«¤ë¤è¤¦¤Ë»×¤ï¤ì¤Þ¤¹¡£

°Ê¾å¡¢½¤Àµ¥ì¥Ý¡¼¥È¤ò¸½¾ì¤«¤é¤ªÁ÷¤ê¤¤¤¿¤·¤Þ¤·¤¿(^^¢ö
XMLʸ½ñ¤Ë¤ÆÆ±¤¸³¬Áؤˡ¢Æ±¤¸Í×ÁǤ¬Ê£¿ô¸ºß¤¹¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¤½¤·¤Æ¤½¤ÎÍ×ÁǤνçÈÖ¤ò¤½¤Î¤Þ¤Þ¼èÆÀ¤·¤¿¤¤¡Ä

¤³¤ì¤Ã¤Æ¡¢XML_DBÆâ¤Î¥Ç¡¼¥¿¤òXML¤Ç¼èÆÀ¤·¤Æ¡¢DOM¤È¤«»È¤Ã¤Æ½ÐÎϤ¹¤ì¤Ð¡¢
½ç½ø¤Ã¤ÆXMLʸ½ñ¤Î¤Þ¤Þ¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹¡£

¤·¤«¤·¤Ê¤¬¤é¡¢°ÊÁ°¤Ë¤¤¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¡¢º£²ó¤Ï¤¤¤Ã¤¿¤óRDB¤È¤·¤Æ¤ÎView¤Î·Á¤Ë¤·¤Æ
ÍøÍѤò¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¤½¤ÎView¤ËÂФ·¤ÆSelectʸ¤òȯ¹Ô¤·¤Æ¤â½ç½ø¤Ê¤ó¤ÆÊݾ㤵¤ì¤Þ¤»¤ó¢ö

¤½¤ó¤Ê»þ¤Ë»ÈÍѤǤ­¤ë¤Î¤¬¡ÖXMLTABLE´Ø¿ô¤ÈFOR ORDINALITY¶ç¡×
¤³¤ì»²¹Í

¤Þ¤¡Îã¤Ï¤Þ¤¿º£Å٤Τ»¤Þ¤¹¤Ã¤Æ»ö¤Ç(^_^;)

¤³¤ì¤Ë¤è¤êSelect»þ¤ÎOrder By ¾ò·ï¤Ë»ØÄꤷ¤Æ¤¢¤²¤ì¤ÐView¤Ç¤¢¤í¤¦¤È½ç½ø¤ÏÊݾ㤵¤ì¤ë¤â¤Î¤È¤Ê¤ê¤Þ¤¹¡£

¿·Ç¯ºÇ½é¤ÎXML_DB¥Í¥¿¡Ä

¤Ï¤¤¡¢º£²ó¤ÏOracle10.2¤«¤é²Äǽ¤È¤Ê¤Ã¤¿xmltable´Ø¿ô¤Ï´ðËÜŪ¤Ë»ÈÍѤ·¤Æ¤ª¤é¤º¡¢
Oracle9i¤Î¤³¤í¤«¤é»ÈÍѲÄǽ¤Ç¤¢¤ëxmlsquence¤òÍѤ¤¤Æ¤¤¤Þ¤¹¡£

¤½¤Î¤Ê¤«¤Ç£±¤Ä¤ÎXMLʸ½ñÃæ¤Ç¡¢0¡Án²ó½ÐÎϲÄǽ¤ÊÍ×ÁǤ¬¤¢¤Ã¤¿¾ì¹ç¤Ë¡¢
¤½¤ÎÃͤȡ¢XMLʸ½ñÃæ¤Ç1²ó½ÐÎϤµ¤ì¤ëÍ×ÁǤä°À­¤ò¼èÆÀ¤¹¤ë¤È¤¤¤¦¾ì¹ç¤Ë²¼µ­¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¤Ï¡¢³°Éô·ë¹ç¤Î¤è¤¦¤Ê¾õÂÖ¤ÇÃͤò¼èÆÀ¤·¤¿¤¤¤ß¤¿¤¤¤Ê¾ì¹ç¤Ç¤¹¡£

<²ñ¼Ò¾ðÊó>
<²ñ¼Ò ID="exbridge">
¡¡<¼Ò̾>³ô¼°²ñ¼Ò¥¨¥¯¥¹¥Ö¥ê¥Ã¥¸</¼Ò̾>
¡¡<HP>http://exbridge.jp/</HP>
¡¡<½»½ê>
¡¡¡¡<½êºßÃÏ ID="ËܼÒ">̾¸Å²°»Ô̾Åì¶èÆ£¤¬µÖ</½êºßÃÏ>
¡¡¡¡<½êºßÃÏ ID="̾¸Å²°¥ª¥Õ¥£¥¹">̾¸Å²°»ÔÀ¾¶è̾±Ø2-26-11 ̾±ØÂè½½°ìÊ¿¾¾¥Ó¥ë 6F</½êºßÃÏ>
¡¡</½»½ê>
¡¡<ºÎÍѾðÊó>http://exbridge.jp/recruit.html</ºÎÍѾðÊó>
¡¡<»ö¶ÈÆâÍÆ>
¡¡¡¡<¥¿¥¤¥È¥ë>¾ðÊó¥·¥¹¥Æ¥à¼õÂ÷³«È¯
¡¡¡¡¡¡<¾ÜºÙ>
¡¡¡¡¡¡¡¡¥È¥ê¥×¥ë¥³¥¹¥È¥À¥¦¥óÀïά
¡¡¡¡¡¡¡¡¡¡¡¡¡¦Ãæ¹ñ¥ª¥Õ¥·¥ç¥¢³«È¯
¡¡¡¡¡¡¡¡¡¡¡¡¡¦¥ª¡¼¥×¥ó¥½¡¼¥¹¥½¥Õ¥È¥¦¥§¥¢
¡¡¡¡¡¡¡¡¡¡¡¡¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È»Ø¸þ
¡¡¡¡¡¡</¾ÜºÙ>
¡¡¡¡</¥¿¥¤¥È¥ë>
¡¡¡¡<¥¿¥¤¥È¥ë>¥½¥Õ¥È¥¦¥§¥¢³«È¯¡¦ÈÎÇä
¡¡¡¡¡¡<¾ÜºÙ>
¡¡¡¡¡¡¡¡¢£»ö¶ÈÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
¡¡¡¡¡¡¡¡¡¡AURORA ´ð´´.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
¡¡¡¡¡¡¡¡¡¡- ÈÎÇä´ÉÍý·Ï
¡¡¡¡¡¡¡¡¡¡¡¡¸«ÀÑ,¼õÃí,Çä¾å,½Ð²Ù¥â¥¸¥å¡¼¥ë
¡¡¡¡¡¡¡¡¡¡- ¹ØÇã´ÉÍý·Ï
¡¡¡¡¡¡¡¡¡¡¡¡°ÍÍê,ȯÃí,»ÅÆþ,Æþ²Ù¥â¥¸¥å¡¼¥ë
¡¡¡¡¡¡¡¡¡¡- ºß¸Ë´ÉÍý·Ï
¡¡¡¡¡¡¡¡¡¡¡¡Æþ¸Ë,½Ð¸Ë,ºß¸Ë¥â¥¸¥å¡¼¥ë
¡¡¡¡¡¡¡¡¡¡­¡É¬Íפʥ⥸¥å¡¼¥ë¤Î¤ß¤òÁªÂò
¡¡¡¡¡¡¡¡¡¡­¢¥â¥¸¥å¡¼¥ë¤ò¼«Í³¤Ë¥«¥¹¥¿¥Þ¥¤¥º
¡¡¡¡¡¡¡¡¡¡­£ºâ̳²ñ·×¡¦EDI¤Ê¤É¤È¤ÎϢư
¡¡¡¡¡¡</¾ÜºÙ>
¡¡¡¡¡¡<¾ÜºÙ>
¡¡¡¡¡¡¡¡¢£Áí̳ÉôÌç¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
¡¡¡¡¡¡¡¡¡¡AURORA Áí̳.EAI ¥½¥ê¥å¡¼¥·¥ç¥ó
¡¡¡¡¡¡¡¡¡¡¶ÐÂÕ´ÉÍý,È÷ÉÊ´ÉÍý,»ÜÀßÀßÈ÷ͽÌó,
¡¡¡¡¡¡¡¡¡¡·ÐÈñÀº»»,¼ÒÆâ¥Õ¥¡¥¤¥ëÊØ,
¡¡¡¡¡¡¡¡¡¡ÅÁ¸À´ÉÍý,etc...
¡¡¡¡¡¡</¾ÜºÙ>
¡¡¡¡¡¡<¾ÜºÙ>
¡¡¡¡¡¡¡¡¢£·Ð±Ä¿Ø¸þ¤±¥½¥ê¥å¡¼¥·¥ç¥ó
¡¡¡¡¡¡¡¡¡¡OLAP/BI¤Ë¤è¤ë·Ð±Ä¾ðÊóʬÀÏ
¡¡¡¡¡¡¡¡¡¡AURORA ´ð´´.EAI¤ËÃßÀѤµ¤ì¤¿¡ÖÇä¾å¡×¡Ö»ÅÆþ¡×¥Ç¡¼¥¿¤òʬÀϤ¹¤ë¤¿¤á¤Î»ÅÁȤߤò¹½ÃÛ¤·¡¢
¡¡¡¡¡¡¡¡¡¡¡Ö¸ÜµÒʬÀÏ(CRM)¡×¡Ö¾¦ÉÊʬÀÏ(MD)¡×¤Î¥Î¥¦¥Ï¥¦¤òÄó¶¡
¡¡¡¡¡¡¡¡¡¡- OpenOLAP(¥ª¡¼¥×¥ó¥½¡¼¥¹)
¡¡¡¡¡¡¡¡¡¡- New WorkFRIEND(JBCC)
¡¡¡¡¡¡¡¡¡¡¡¡¥Ý¡¼¥¿¥ë(CMS)¤Ë¤è¤ëÃμ±·Ð±Ä
¡¡¡¡¡¡¡¡¡¡CMS¤Ë¤è¤ë¼ÒÆâ¥Ý¡¼¥¿¥ë,¥³¥ß¥å¥Ë¥Æ¥£¥µ¥¤¥È¹½ÃÛ¤ò»Ù±ç¤·¡¢
¡¡¡¡¡¡¡¡¡¡¥Ê¥ì¥Ã¥¸¥Þ¥Í¡¼¥¸¥á¥ó¥È¤òÀ®¸ù¤ËƳ¤­¤Þ¤¹
¡¡¡¡¡¡¡¡¡¡ÆÀ°ÕÀè¤È¤ÎÃμ±¡¦¾ðÊó¶¦Í­¡¢¼Ò°÷´Ö¤Ë¤ª¤±¤ë
¡¡¡¡¡¡¡¡¡¡Ãμ±¡¦¾ðÊó¶¦Í­¤ò¸úΨŪ¤Ë¼Â¸½¤·¡¢¥Ê¥ì¥Ã¥¸¤ò
¡¡¡¡¡¡¡¡¡¡Í­¸ú¤Ë³èÍѤ¹¤ë·Ð±Ä¤ò»Ù±ç¤·¤Þ¤¹
¡¡¡¡¡¡</¾ÜºÙ>
¡¡¡¡</¥¿¥¤¥È¥ë>
¡¡¡¡<¥¿¥¤¥È¥ë>IT¥¢¥¦¥È¥½¡¼¥·¥ó¥°</¥¿¥¤¥È¥ë>
¡¡¡¡<¥¿¥¤¥È¥ë>ITÅê»ñ¥³¥ó¥µ¥ë¥Æ¥£¥ó¥°</¥¿¥¤¥È¥ë>
¡¡¡¡<¥¿¥¤¥È¥ë>BPR¥³¥ó¥µ¥ë¥Æ¥£¥ó¥°</¥¿¥¤¥È¥ë>
¡¡¡¡<¥¿¥¤¥È¥ë>·Ð±ÄʬÀÏ¥³¥ó¥µ¥ë¥Æ¥£¥ó¥°</¥¿¥¤¥È¥ë>
¡¡</»ö¶ÈÆâÍÆ>
¡¡<Äó·È´ë¶È>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">ÆîµþÆü¹±¿®Â©·ÏÅýÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">°ÎÇì¸ËÏ¥¿®Â©µ»½Ñ¡Ê¾å³¤¡ËÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">ÌÖ¸µ·×»»µ¡·ÏÅýÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">±§Ãè²Ê³Ø·ÏÅý¡ÊÅ·ÄÅ¡ËÆð·ï³«È¯Í­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">¾å³¤ÉüöÈùÅŻҸÔʶͭ¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">¹õε¹¾¹ñÌ®ÄÌ¿®²Ê³Øµ»½ÑÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">¹º½£ìÐ°ÝÆð·ïÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">ºÑÆîÂÙ³Ú¿®Â©µ»½ÑÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡¡¡<¼Ò̾ ¹ñ="Ãæ¹ñ">Å·ÄÅÍëÃÒ¿®Â©µ»½ÑÍ­¸Â¸ø»Ê</¼Ò̾>
¡¡</Äó·È´ë¶È>
<²ñ¼Ò ID="exbridge">
</²ñ¼Ò¾ðÊó>

¾åµ­¤ÎXML¥Ç¡¼¥¿¤òOracle¤ÎXMLTable¡Ö²ñ¼Ò¾ðÊóXML¥Æ¡¼¥Ö¥ë¡×¤Ø³ÊǼ¤·¤Æ¤¢¤ë¤È¤·¤Þ¤¹¡£

¤³¤ó¤Ê»þ¤Ë¡¢²ñ¼Ò̾¤È¡¢»ö¶ÈÆâÍÆ¤Î¾ÜºÙ¤Ë¤ÆÉ½·Á¼°¤Î¥Ç¡¼¥¿¤¬Íߤ·¤¤¡¢¾ÜºÙ¤¬¤Ê¤¯¤Æ¤â²ñ¼Ò̾¤Ï¤¤¤ë¤È¤¤¤¦¤È¤­¤Ï¡Ä

select
extractvalue(value(compInfo), '/²ñ¼Ò¾ðÊó/²ñ¼Ò/¼Ò̾') as ²ñ¼Ò̾,
extractvalue(value(detail), '/¾ÜºÙ/text()') as »ö¶ÈÆâÍÆ¾ÜºÙ
from
²ñ¼Ò¾ðÊóXML¥Æ¡¼¥Ö¥ë compInfo,
table(xmlsequence(extract(value(compInfo), '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'))(+) detail

¾åµ­SQL¤Ë¤Æ(+)¤¬¥Ý¥¤¥ó¥È¤Ç¤¹¡£

¤³¤ì¤Ë¤è¤ê¡¢³°Éô·ë¹ç¤ß¤¿¤¤¤Ê¹Í¤¨¤È¤·¤Æ»ÈÍѤǤ­¤ë¤Î¤Ç¡¢
<»ö¶ÈÆâÍÆ><¥¿¥¤¥È¥ë><¾ÜºÙ>¤Î¥Î¡¼¥É¤¬¤Ê¤¤¾ì¹ç¤Ç¤â¡¢
²ñ¼Ò̾¥Î¡¼¥É¤Ç¤Î°ìÍ÷¤È¤·¤Æ¼èÆÀ¤Ç¤­¤Þ¤¹¡£

(+)¤Ä¤±¤Ê¤¤¤È¡¢<»ö¶ÈÆâÍÆ><¥¿¥¤¥È¥ë><¾ÜºÙ>¤Î¥Î¡¼¥É¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤»þ¤Ë¤Ï¡¢
table(xmlsequence(extract(value(compInfo), '/²ñ¼Ò¾ðÊó/²ñ¼Ò/»ö¶ÈÆâÍÆ/¥¿¥¤¥È¥ë/¾ÜºÙ'))
¤Ï³ºÅö¤¹¤ë¾ðÊ󤬤ʤ¤¤È¤¤¤¦¤³¤È¤Ç¡¢
NULL¤Î¤â¤Î¤È¤Î·ë¹ç¤ß¤¿¤¤¤Ê´¶¤¸¤Ë¤Ê¤Ã¤Æ¡¢
²ñ¼Ò̾¤¹¤é¼èÆÀ¤Ç¤­¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¢¨ÀëÅÁ¤«¤Í¤µ¤»¤Æ¤¤¤¿¤À¤¤¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¡¢XML¤ÇÆüËܸì¤äÁ´³Ñ¥¹¥Ú¡¼¥¹»È¤Ã¤Æ¤Þ¤¹¡£
Oracle¤Ç¤Á¤ã¤ó¤Èǧ¼±¤·¤Æ¤¯¤ì¤ë¤«¤Ï¤ï¤«¤ê¤Þ¤»¤ó¤Î¤Ç¤¢¤·¤«¤é¤º¢ö
¤¢¤¯¤Þ¤Ç¤â¥µ¥ó¥×¥ë¤Ç¤¹¤Î¤Ç¡¢¤½¤³¤Ï¤´Íý²ò¤¯¤À¤µ¤¤¡£
Á°¤Ë¤âµ­ºÜ¤·¤Æ¤¿¤±¤É¡¢Oracle¤Ë´Ø¤·¤ÆXMLDB¤ÎÄ´¤Ù¤â¤Î¤ò¤¹¤ë¤Ê¤é
ÆüËܤÎOTN¤è¤ê¤âUSA¤ÎÊý¤¬¤Á¤ã¤ó¤È¥«¥Æ¥´¥é¥¤¥º¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç
¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¡Á¤È¤¤¤¦¤³¤È¤Ç¾ì½ê¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¡Ä
http://forums.oracle.com/forums/forum.jspa?forumID=34&start=0

¾¤Ë¤â¡ÖXML¡×¤È¥«¥Æ¥´¥é¥¤¥º¤Î¤È¤³¤â¤¢¤ë¤·¡¢
¼ã´³¤Ê¤ê¤È¤â¸«¤Æ¤¤¤ë¸Â¤êÆüËܤè¤ê¤â¾ðÊ󤬿·¤·¤¤¡£
¡Ê10gR2¤Ç¤Îɸ½à¤È¤Ê¤Ã¤¿SQL¤òÍѤ¤¤Æ¤Îµ­ºÜ¤¬¤¢¤Ã¤¿¤ê¤¹¤ë¡£¡Ë

ÆüËܤÎOTN¤â·ë¹½ÌòΩ¤Ã¤Æ¤Ï¤¤¤ë¤±¤É¤â¡¢¤Á¤ç¤Ã¤È±Ñ¸ì¤¬¶ì¼ê¤Ç¤â
²¿¤È¤Ê¤¯¤¤¤Ã¤Æ¤ë¤³¤È¤Ï¤ï¤«¤ë¤ï¤±¤À¤·¡¢Â­¤ò¿­¤Ð¤·¤Æ¤ß¤Æ¤Ï¤¤¤«¤¬¤Ç¤·¤ç¤¦¤«¡©

¤½¤¦¤Ê¤ó¤Ç¤¹¡£Oracle·¯¤ÎÀ©¸Â¤â¤¢¤ê¡¢Ä¹¤¤XMLʸ½ñ¤òÍѤ¤¤ÆInsert¤ò¼Â¹Ô¤¹¤ë¤È¡Ä

¡Öʸ»ú¥ê¥Æ¥é¥ë¤¬Ä¹¤¹¤®¤Þ¤¹¡×¤Ã¤Æ¤¤¤ï¤ì¥Ç¡¼¥¿¤È¤·¤ÆÆþ¤ì¤Æ¤¯¤ì¤Þ¤»¤ó¡£

¤½¤³¤ÇÅо줹¤ë¤Î¤¬¡Ä¥×¥í¥·¡¼¥¸¥ã¡¼¢ö
¤Ê¤Ë¤â¤¢¤ì¤Ç¤¹¤è¡£DB¤ËÇÛÃÖ¤·¤Æ¤¤¤Ê¤¯¤Æ¤â»ÈÍѤϲÄǽ¤Ç¤¹¤è(^¡¦^)
¡Ê¢¨¤¢¤¯¤Þ¤Ç¤âSQLPLUS¾å¤È¤«¤ÎÏäÀ¤±¤É¡Ä¡Ë

Î㤨¤Ð¡Ä
hoge_xml¤È¤¤¤¦Ì¾¤ÎXMLTable¤òºîÀ®¤·¤Æ¤ª¤­¤Þ¤¹¡£

insert into hoge_xml values xmltype('¤³¤³¤ÏŤ¤XMLʸ½ñ')

¤Ç¼Â¸ú¤·¤Æ¤â¾åµ­¤Ëµ­¤·¤¿·ë²Ì¤Ç¡¢¤Ï¤¤»Äǰ¡£

¤À¤±¤É¤â

DECLARE
xmldoc CLOB;
BEGIN
xmldoc := 'Ť¤XMLʸ½ñ';
insert into hoge_xml xmltype(xmldoc);
END;

¤È¤¹¤ì¤Ð¤Á¤ã¤ó¤ÈŤ¤XMLʸ½ñ¤¬Insert¤µ¤ì¤Þ¤¹¡£
¤â¤Á¤í¤óCLOB¤È¤·¤Æ¤Î¸ÂÅ٤ʤɤϤ¢¤ë¤Î¤Ç¤·¤ç¤¦¤±¤É¡Ä

¤³¤³¤é¤Ø¤ó¤Ë»÷¤¿¤è¤¦¤Ê¤â¤Î¤â¥¢¥á¥ê¥«¤ÎOTN¤Î·Ç¼¨ÈĤȤ«
¡ÖXMLDDB´ÉÍý¼Ô¥¬¥¤¥É¡×¤ËÌܤòÄ̤»¤Ð¤Ê¤ó¤È¤Ê¤¯È½¤ë»ö¤Ê¤Î¤Ç¤¹¤¬¡¢
¤ä¤Ã¤ÑÌܤòÄ̤¹¤À¤±¤¸¤ã¤Ê¤«¤Ê¤«Íý²ò¤·¤¬¤¿¤¤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¤Í¡Ä
¤À¤Ã¤Æ¥¹¥È¥¢¥É¤Þ¤Ç»È¤Ã¤Æ¤ë¤Î¤À¤È¥¹¥È¥¢¥ÉÆâ¤ÇDOM¤ä¤é»È¤Ã¤Æ¤¿¤ê¤·¤Þ¤¹¤·¡£

ÏäϤ½¤ì¤Þ¤¹¤¬¡Ä
DOM¤äSAX¤Î³µÇ°¼«ÂΤϸÀ¸ì¤Ë°Í¸¤·¤¿¤â¤Î¤Ç¤Ê¤¯¶¦Ä̤ʤΤǡ¢
XML Proffesional¤Î»î¸³¤ò¼õ¤±¤ë°Ù¤Ë¤âÇİ®¤Ï¤·¤Æ¤ª¤­¤¿¤¤¤â¤Î¤Ç¤¹¡£

¤Þ¤¿¡¢º£¤µ¤é¤Ê¤¬¤éFC2¤Î¥¹¥ì¥Ã¥É¥Æ¡¼¥Þ¤Ç¡Ö¥Ç¡¼¥¿¥Ù¡¼¥¹¡×¤È¤Ò¤È¤¯¤¯¤ê¤Ë¤µ¤ì¤Æ¤ë¤Î¤Ë
µ¿Ìä¤òÊú¤¤¤Æ¤ª¤ê¤Þ¤¹¡£

¸À¸ì¤Ë´Ø¤·¤Æ¤ÏPHP¤Ê¤É¸À¸ìñÂΤǤ¢¤ë¤Î¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¤Ò¤È¤¯¤¯¤ê¤Ã¤Æ¡Ä
SQL¤Ç¤Ò¤È¤¯¤¯¤ê¤Ë¤Ï¤Ê¤ë¤±¤É¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ã¤Æ¤¯¤¯¤ê¤ÏÂ礭¤¹¤®¤Ê¤¤¡©
¤¸¤ã¤¢¥¹¥ì¥Ã¥É¥Æ¡¼¥ÞºîÀ®¤·¤í¤è¤Ã¤Æ¤Ê¤ë¤ó¤Ç¤·¤ç¤¦¤±¤É¡Ä
¤½¤³¤Ï¤Û¤é¡¢Â¾¤ÎDB»È¤¤¤ÎÊý¡¹¤È¤âÃçÎɤ¯¤·¤¿¤¤¤¸¤ã¤Ê¤¤¤Ç¤¹¤«¢ö

¸ø³«¤·¤Á¤ã¤¤¤Þ¤¹XML¥Ç¡¼¥¿¤«¤é¥ê¥ì¡¼¥·¥ç¥Ê¥ëɽ¤Î·Á¼°¤ËÊÑ´¹¤¹¤ëÊýË¡¢ö

ºÇ¶á¥Ò¥Ã¥­¡¼¤Ë¤Ê¤Ã¤Æ¤ëXMLDB·¯¤Î¾ðÊó¤Ç¤¹(^_^;)
OTN¤Î·Ç¼¨ÈĤÎÊý¤Ë¤¤¤Ã¤¿¤óµ­ºÜ¤·¤¿¤Î¤Ç¤¹¤¬¡¢¼«Ê¬¼«¿È¤¬Ëº¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë°Ù¤Ë¤â
ƱÆâÍÆ¤ò¥³¥ß¥«¥ë¤Ë¡©¤³¤Á¤é¤Î¤Û¤¦¤Ëµ­ºÜ¤·¤Þ¤¹¡£¡¡

¤½¤â¤½¤â¤Ê¤ó¤Ç¤½¤ó¤Ê¤³¤È¤¹¤ó¤Í¤ó¤È¥Ä¥Ã¥³¤Þ¤ì¤½¤¦¤Ç¤¹¤¬¡¢
³«È¯¤Ë¤ª¤¤¤ÆOR¥Þ¥Ã¥Ñ¡¼¤ò»ÈÍѤ·¤Æ¤ª¤ê¡¢RDB¤âXMLDB¤âº®¤¸¤Ã¤Æ¤Þ¤¹¤Î¤Ç¡¢
³«È¯¸úΨ¤Î°Ù¤Ë¤â¤½¤¤¤Ä¤ò¹ª¤¯ÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¥ê¥ì¡¼¥·¥ç¥Ê¥ë¤Îɽ·Á¼°¤Ë¤¹¤ëɬÍפ¬¤¢¤Ã¤¿¤Î¤Ç¤¹¡£

º£²ó¤ÏXMLTABLE´Ø¿ô¤È¤¤¤¦¤â¤Î¤ò»È¤¤¤Þ¤¹¡£
¤³¤Î´Ø¿ô¤Ï10gR2¤«¤é¤é¤·¤¤¤Î¤Ç¤¹¤¬¡¢SQLɸ½à¡Ê2003¡©¤À¤Ã¤¿¤«¤Ê…¡Ë¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¡¢
Oracle·¯°Ê³°¤Ë¤â¾¤Î»Ò¤Ë¤âÃçÎɤ¯¤Ç¤­¤ë¤Ï¤º¤Ç¤¹¢ö
¡Ê¤Á¤ç¤Ã¤ÈSQL¥ê¥Õ¥¡¥ì¥ó¥¹¼ê¸µ¤«¤é¾Ã¤¨¤¿¤Î¤Ç³Îǧ¤Ï¤·¤Æ¤¯¤À¤µ¤¤(^_^;)¡Ë

¤½¤³¤Ç¥µ¥ó¥×¥ë¤È¤·¤Æ²¼µ­¤ÎXML¥Ç¡¼¥¿¤òÍѰդ·¤Þ¤¹¡£
¤³¤ì¤Ï°ÊÁ°¤Ë¤âµ­ºÜ¤·¤¿¥µ¥ó¥×¥ë¤ò¸µ¤Ë³ÈÄ¥¤·¤ÆXML¥¹¥­¡¼¥ÞÄêµÁ¤ò
XMLDB¤ËÄêµÁ¤·¤Æ¡¢Insert¤·¤Æ¤¢¤ë2¤Ä¤ÎXML¥Ç¡¼¥¿¤Ç¤¹¡£
¤Á¤ç¤Ã¤È̾Á°¶õ´Ö¤ËÁ¤¯¤Ã¤Æ¤ª¤©¡Á¤È¤¤¤¦À¼¤Ïʹ¤³¤¨¤Æ¤³¤Ê¤¤¤«¤â¤·¤ì¤Þ¤»¤ó¤¬…


--XMLTYPEɽ¤ËÁÞÆþ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¡£(ƱÍѤÎXMLʸ½ñ2¤Ä)
<?xml version="1.0" encoding="SHIFT_JIS"?>
<emp:empInfo xmlns:emp="
http://otnxml.oracle.co.jp/empInfo.xsd"
¡¡xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
¡¡xsi:schemaLocation="
http://otnxml.oracle.co.jp/empInfo.xsd empInfo.xsd">
  <emp:employee emp:id="778200" emp:type="fulltime">
    <emp:personalInfo>
      <emp:name>CLARK</emp:name>
      <emp:localName>¥¯¥é¡¼¥¯</emp:localName>
      <emp:sexuality>Male</emp:sexuality>
      <emp:job>MANAGER</emp:job>
      <emp:manager>783900</emp:manager>
      <emp:hireDate>19810609</emp:hireDate>
      <emp:salary>2450</emp:salary>
    </emp:personalInfo>
    <emp:depts>
      <emp:dept emp:status="now">
        <emp:deptName>ACCOUNTING</emp:deptName>
        <emp:location>¥Ë¥å¡¼¥è¡¼¥¯</emp:location>
      </emp:dept>
      <emp:dept emp:status="last">
        <emp:deptName>¥µ¥Ý¡¼¥È¥µ¡¼¥Ó¥¹ËÜÉô</emp:deptName>
        <emp:location>ÍѲì</emp:location>
      </emp:dept>
      <emp:dept xmlns:emp="
http://otnxml.oracle.co.jp/empInfo.xsd"¡¡emp:status="add">
        <emp:deptName>¤¢¤¤¤É¤é</emp:deptName>
        <emp:location>¤¢¤ê¤É</emp:location>
      </emp:dept>
    </emp:depts>
  </emp:employee>
</emp:empInfo>

<?xml version="1.0" encoding="SHIFT_JIS"?>
<emp:empInfo xmlns:emp="
http://otnxml.oracle.co.jp/empInfo.xsd"
¡¡xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
¡¡xsi:schemaLocation="
http://otnxml.oracle.co.jp/empInfo.xsd empInfo.xsd">
  <emp:employee emp:id="784400" emp:type="part">
    <emp:personalInfo>
      <emp:name>TURNER</emp:name>
      <emp:localName>¥¿¡¼¥Ê¡¼</emp:localName>
      <emp:sexuality>Male</emp:sexuality>
      <emp:job>SALESMAN</emp:job>
      <emp:manager>769800</emp:manager>
      <emp:hireDate>19810908</emp:hireDate>
      <emp:salary>1500</emp:salary>
    </emp:personalInfo>
    <emp:depts>
      <emp:dept emp:status="now">
        <emp:deptName>SALES</emp:deptName>
        <emp:location>¥·¥«¥´</emp:location>
      </emp:dept>
      <emp:dept emp:status="last">
        <emp:deptName>¥µ¥Ý¡¼¥È¥µ¡¼¥Ó¥¹ËÜÉô</emp:deptName>
        <emp:location>ÍѲì</emp:location>
      </emp:dept>
      <emp:dept xmlns:emp="
http://otnxml.oracle.co.jp/empInfo.xsd" emp:status="add">
        <emp:deptName>¤¢¤¤¤É¤é</emp:deptName>
        <emp:location>¤¢¤ê¤É</emp:location>
      </emp:dept>
    </emp:depts>
  </emp:employee>
</emp:empInfo>

¤ËÂФ·¤Æ

--¥ê¥ì¡¼¥·¥ç¥Ê¥ëɽ·Á¼°¤Ø¤ÎÊÑ´¹
SELECT
    enpinfo.name,
    enpinfo.local_name,
    sexuality,
    job
FROM empInfo_xml,
    XMLTABLE('/empInfo'
        passing object_value
        COLUMNS
        name varchar2(40) path '/empInfo/employee/personalInfo/name',
        local_name varchar2(40) path '/empInfo/employee/personalInfo/localName',
        sexuality varchar2(40) path '/empInfo/employee/personalInfo/sexuality',
        job varchar2(40) path '/empInfo/employee/personalInfo/job'
) enpinfo


¤ò¤¹¤ë¤È¡¢

¾Ü¤·¤¯¤Ï¡¢10gR2¤Î¡ÖOracle XML DB³«È¯¼Ô¥¬¥¤¥É¡×¤ª¤è¤Ó¡ÖSQL¥ê¥Õ¥¡¥ì¥ó¥¹¡×¤ò
»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

NAME ¡¡¡¡ LOCAL_NAME   SEXUALITY     JOB
-------------------------------------------
TURNER   ¥¿¡¼¥Ê¡¼          Male ¡¡         ¡¡SALESMAN
KING ¡¡¡¡   ¥­¥ó¥° ¡¡¡¡        Male ¡¡¡¡         PRESIDENT

¤È¤¤¤Ã¤¿·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤¹¢ö¤³¤Î»þ¤Ë³Æ¥«¥é¥à¤Î·¿¤ò»ØÄꤷ¤Æ¤¢¤²¤Ê¤¤¤È¤·¤«¤é¤ì¤Þ¤¹¤Î¤Ç¡¢
¾åµ­¤ß¤¿¤¤¤Ê¤¤¤¤²Ã¸º»ØÄê¤Ç¤Ï¤Ê¤¯¤Ã¤Æ¤Á¤ã¤ó¤È¤·¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡ù


¤Á¤Ê¤ß¤Ë¾åµ­¤ÏXMLTypeɽ¤«¤é¤ÎÊÑ´¹¤Ç¤¹¤Î¤Ç¡¢XMLTypeÎ󤫤éÀ¸À®¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢
¡Öpassing object_value¡×Éôʬ¤¬¡Öpassing XML_TYPEÎó¤ÎÎó̾¡×¤Ë
¤Ê¤Ã¤Æ¤¯¤ë¤Ï¤º¤Ç¤¹_(_^_)_


¤Þ¤¿´Ê°×Ū¤Ë¡ÖXMLTABLE('/empInfo' ¡×¤È¤·¤Æ¤Þ¤¹¤¬¡¢
¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤è¤ë¤È<strong>XQuery</strong>¤Ë¤è¤ëÀ¸À®¤¬¤Ç¤­¤ë¤è¤¦¤Ê¤Î¤Ç¡¢½ÀÆð¤Ë¾ðÊó¼èÆÀ¤Ï¤Ç¤­¤ë¤«¤È»×¤ï¤ì¤Þ¤¹¡£



¾Ü¤·¤¯¤Ï¡¢10gR2¤Î¡ÖOracle XML DB³«È¯¼Ô¥¬¥¤¥É¡×¤ª¤è¤Ó¡ÖSQL¥ê¥Õ¥¡¥ì¥ó¥¹¡×¤ò
»²¹Í¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£