数据类型不一致:预期的游标获得CLOB

wtzytmuj  于 2022-10-04  发布在  Oracle
关注(0)|答案(1)|浏览(226)

在将这段代码编译为Oracle存储的过程时,我收到错误“不一致的数据类型:期望的游标得到CLOB”。我不知道如何将CLOB变量放入输出游标中。

  1. CREATE OR REPLACE PROCEDURE sp_getPolygon
  2. (
  3. CityId IN INT,
  4. Out_CUR OUT SYS_REFCURSOR
  5. ) AS
  6. BEGIN
  7. DECLARE
  8. cola_b_geom SDO_GEOMETRY;
  9. returned_json CLOB;
  10. BEGIN
  11. open Out_CUR for
  12. With cte as(SELECT GEOMETRY FROM GISBRANCHES WHERE "FBranchesId" IN (SELECT "Id" FROM "CreBranches" WHERE "FCitiesId" = CityId))
  13. SELECT GEOMETRY into cola_b_geom FROM cte;
  14. returned_json := SDO_UTIL.TO_GEOJSON(cola_b_geom);
  15. --dbms_output.put_line( returned_json );
  16. SELECT returned_json into Out_CUR FROM DUAL;
  17. END;
  18. END sp_getPolygon;
fnvucqvd

fnvucqvd1#

不完全是这样;我不能测试它,因为我没有您的表,但是-程序应该是这样的:

  1. CREATE OR REPLACE PROCEDURE sp_getpolygon
  2. (
  3. cityid IN INT,
  4. out_cur OUT SYS_REFCURSOR
  5. ) AS
  6. returned_json CLOB;
  7. BEGIN
  8. OPEN out_cur FOR
  9. WITH cte AS
  10. (SELECT geometry
  11. FROM gisbranches
  12. WHERE "fbranchesid" IN (SELECT "id"
  13. FROM "crebranches"
  14. WHERE "fcitiesid" = cityid
  15. )
  16. )
  17. SELECT sdo_util.to_geojson (geometry) as geometry_out
  18. FROM cte;
  19. END sp_getpolygon;
展开查看全部

相关问题