Функция Postgres, генерирующая исключение из кода Java "курсор" q "уже используется" - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть функция 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;
$$;

Я закрываю курсор после его использования, но все же он выдал исключение.Может кто-нибудь сказать мне причину этого.

...