Ошибка: курсор "<бездушный портал 5>" не существуетJAVA

Программисты JAVA общаются здесь
Anonymous
Ошибка: курсор "<бездушный портал 5>" не существует

Сообщение Anonymous »

Я пытаюсь вызвать функцию/сохраненную процедуру PostgreSQL (которая возвращает курсор). Я вызываю функцию с помощью хранимой Proc-outbound-gateway Spring Integration. Это дает мне ошибку ниже: < /p>

Caused by: org.springframework.messaging.MessageHandlingException: Expression evaluation failed: @sampleProcedureGateway.exchange(#root).payload; nested exception is org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{? = call erb.getSampleDetails_sp(?, ?, ?, ?, ?)}]; SQL state [34000]; error code [0]; ERROR: cursor "" does not exist; nested exception is org.postgresql.util.PSQLException: ERROR: cursor "" does not exist
< /code>

Ниже приведен моя конфигурация интеграции Spring: < /p>

















< /code>

Ниже приведена хранящаяся процедура: < /p>

CREATE OR REPLACE FUNCTION erb.getSampleDetails_sp(
id text,
date text,
name text,
endrow double precision,
startrow double precision,
OUT finalData refcursor)
RETURNS refcursor
LANGUAGE 'plpgsql'

COST 100
VOLATILE
AS $BODY$

BEGIN
IF name = 'true' THEN
OPEN finalData FOR
SELECT
*
FROM (SELECT
row_number() OVER (ORDER BY NULL) AS rnum, vhinv.*
FROM (SELECT query) AS vhinv
LIMIT i_endrow) AS var_sbq
WHERE rnum >= i_startrow;
ELSE
OPEN finalData FOR
SELECT
*
FROM (SELECT
row_number() OVER (ORDER BY NULL) AS rnum, vhinv.*
FROM (SELECT query) AS vhinv
LIMIT i_endrow) AS var_sbq_2
WHERE rnum >= i_startrow;
END IF;
END;

$BODY$;
< /code>

Есть ли способ решить это? < /p>

Подробнее здесь: https://stackoverflow.com/questions/504 ... -not-exist

Вернуться в «JAVA»