У меня есть функция postgres, которую я использую для получения данных.Иногда это выдает странную ошибку в программе, подобную этой:
Caused by: org.postgresql.util.PSQLException: ERROR: cursor "q" already in use
Вот моя функция:
CREATE OR REPLACE FUNCTION myArray(domain_name varchar, val json) RETURNS varchar LANGUAGE plpgsql STABLE AS $$
DECLARE
result varchar;
isarray BOOLEAN;
q cursor for
select json_agg(blogIn(null,b.value))
from json_array_elements_text(val) b;
BEGIN
SELECT json_typeof(val) = 'array' into isarray;
if not isarray THEN
return val;
end if;
open q;
fetch q into result;
close q;
if result is null then
return val;
end if;
return result;
END;
$$;
Я закрываю курсор после его использования, но все же он выдал исключение.Может кто-нибудь сказать мне причину этого.