以下创建了对象类型
CREATE TYPE sdo_geometry AS OBJECT (
SDO_GTYPE NUMBER,
SDO_SRID NUMBER,
SDO_POINT SDO_POINT_TYPE,
SDO_ELEM_INFO MDSYS.SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES MDSYS.SDO_ORDINATE_ARRAY);如何在如下所示的函数中返回MDSYS.SDO_GEOMETRY,该怎么做呢???函数的功能已经实现了,但就是如何将计算出的数据返回呢?
SDO_GEOM.SDO_UNION(
geom1 IN MDSYS.SDO_GEOMETRY,
geom2 IN MDSYS.SDO_GEOMETRY,
tol IN NUMBER
) RETURN MDSYS.SDO_GEOMETRY;下面列出一个实用的例子
SELECT SDO_GEOM.SDO_UNION(c_a.shape, m.diminfo, c_c.shape, m.diminfo)
FROM cola_ets c_a, cola_ets c_c, user_sdo_geom_metadata m
WHERE m.table_name = ’COLA_MARKETS’ AND m.column_name = ’SHAPE’
AND c_a.name = ’cola_a’ AND c_c.name = ’cola_c’;

解决方案 »

  1.   

    declare
    geom MDSYS.SDO_GEOMETRYbegin
      SELECT SDO_GEOM.SDO_UNION(c_a.shape, m.diminfo, c_c.shape, m.diminfo) into geom 
      FROM cola_ets c_a, cola_ets c_c, user_sdo_geom_metadata m
      WHERE m.table_name = ’COLA_MARKETS’ AND m.column_name = ’SHAPE’
      AND c_a.name = ’cola_a’ AND c_c.name = ’cola_c’;
    exception
      dbms_output.put_line('errcode:'||sqlerrcode||'errmsg:'||sqlerrm); 
    end;
    /
      

  2.   

    我指得是在SDO_GEOM.SDO_UNION函数中返回MDSYS.SDO_GEOMETRY的方法,不是select语句如何在pl/sql中实现