Spatial multipolygon to polygon

From WickyWiki

Convert multipolygons (gtype = 7) to polygons.

SELECT id
       , polyid
       , mdsys.sdo_util.GetNumElem(p.geom) as polyCount
       , mdsys.sdo_util.Extract(p.geom,polyid,0) as geom
  FROM projmultipoly2d p
       , (select level as polyid
          from dual
          connect by level <= (
              select max(mdsys.sdo_util.GetNumElem(p.geom)) 
              from projmultipoly2d p) ) i
  WHERE p.geom.get_gtype() = 7
     and i.polyid <= mdsys.sdo_util.GetNumElem(p.geom)
  ORDER BY 1,2
;