【发布时间】:2017-12-08 16:27:51
【问题描述】:
我正在使用 Oracle 的空间数据库,但遇到了一些问题。
我正在使用几何子程序(如 SDO_GEOM.SDO_LENGTH)执行一些程序,它返回一个数字,但是当我使用其他几何子程序(如 SDO_GEOM.CENTROID)时,我不知道如何显示信息,因为这会返回一个 SDO_OBJECT。
我是 Spatial Oracle 子程序的新手,非常感谢您的帮助。
这是我正在处理的代码:
PROCEDURE centroId(pnombre IN VARCHAR2) IS
geomEntrada SDO_GEOMETRY;
dist VARCHAR2(100);
tupla caceres%ROWTYPE;
dim SDO_DIM_ARRAY;
-- Cursor para recuperar los barrios
CURSOR cursor_barrio IS
SELECT *
FROM caceres
WHERE tipo = 'Barrio';
BEGIN
-- Recuperar la geometria del parametro de entrada
SELECT Geom INTO geomEntrada
FROM Caceres
WHERE Nombre = pnombre;
-- Obtener dim
SELECT DIMINFO INTO dim
FROM USER_SDO_GEOM_METADATA
WHERE table_name='CACERES'; --Ojo, CACERES en mayúsculas
-- Recorrer todos los barrios
OPEN cursor_barrio;
LOOP
FETCH cursor_barrio INTO tupla;
EXIT WHEN cursor_barrio%NOTFOUND;
--SDO_GEOM.SDO_LENGTH
dist := SDO_GEOM.SDO_CENTROID(geomEntrada,dim);
END LOOP;
DBMS_OUTPUT.PUT_LINE(pnombre||' have this center: ' || dist);
END centroId;
我做错了什么?
如何显示信息?可以使用 st_asText 吗?
【问题讨论】:
标签: database plsql oracle-sqldeveloper spatial