Вызов процедуры дает значение в dbeaver, но не из вызова кодаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вызов процедуры дает значение в dbeaver, но не из вызова кода

Сообщение Anonymous »

Привет, я выполняю хранимую процедуру. Я получаю ее результат, когда правильно запускаю ее из dbeaver с нужными параметрами, тогда как для той же процедуры я получаю нулевой результат, когда пытаюсь выполнить процедуру из кода.
Ниже приведены вызовы кода

Код: Выделить всё

procedurequery = entityManager.createNamedStoredProcedureQuery("UserManagementUsersReportModel.generate");
procedurequery.setParameter("START_DATE", formattedStartDate);
procedurequery.setParameter("END_DATE", formattedEndDate);
procedurequery.setParameter("DEF", parameters.get("def"));
procedurequery.setParameter("ABC", parameters.get("abc"));

List ReportList = procedurequery.getResultList();
Кроме того, используя объект, как показано ниже:

Код: Выделить всё

@NamedStoredProcedureQuery(
name = "Report.generate",
procedureName = "REPORT",
parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "CREATED_START_DATE", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "CREATED_END_DATE", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "DEF", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "ABC", type = String.class),
},
resultClasses = Report.class
)
Я даже распечатал параметры, они точно такие же, как я использую для запуска процедуры из dbeaver.
Параметр: ABC, Значение: null
Параметр: CREATED_START_DATE, значение: 15 мая 05
Параметр: DEF, значение: 1,2,79
Параметр: CREATED_END_DATE, значение: 24 мая 08
Ниже приведен запрос, который я использую в хранимой процедуре

Код: Выделить всё

SET @SqlQuery = '
SELECT ulv.*, cau.CREATED_BY, cau.CREATED_DATE  from CORE.DEF ulv
left join CORE.ABC cau
on cau.id = ulv.id
where
'

IF @DEF IS NOT NULL
BEGIN
SET @SqlQuery = @SqlQuery + ' ulv.id IN (' + REPLACE(@DEF, ',', ',') + ')';
END

IF @ABC IS NOT NULL
BEGIN
SET @SqlQuery = @SqlQuery + ' AND cau.abc IN (' + REPLACE(@ABC, ',', ',') + ')';
END
Просто чтобы уточнить, удалю ли я эти параметры в процедурах и просто запущу запрос без фильтров, это даст мне правильный результат как в коде, так и в dbeaver
Невозможно понять, что не так с параметрами запроса, они дают результат из dbeaver, а не из кода

Подробнее здесь: https://stackoverflow.com/questions/784 ... -code-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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