SQLcode = -302 только для некоторых пользователей - PullRequest
0 голосов
/ 25 мая 2018

В нашем приложении только один SQL-запрос возвращает sqlerror = -302 только для некоторых пользователей.Когда я вызываю функцию с этим Query, он работает нормально, а для некоторых других пользователей также работает нормально.Только некоторые пользователи имеют проблемы с этим запросом.Запросы к другим таблицам в той же схеме работают нормально, и я также проверил предоставление других таблиц, и таблицы, используемые в этом запросе, все одинаковые, но для некоторых пользователей запрос все еще не выполняется.Кто-нибудь сталкивался с такой проблемой ранее?пожалуйста, дайте мне знать, если вы смогли найти основную причину проблемы.

SELECT OCS.OPERATOR_ID, OCS.CHECK_ID, OCS.TEMPLATE_ID, OCS.START_DATE,
    OCS.COMPLETE_DATE, OCS.STATUS, OCS.APPROVER_ID 
  FROM OC_STATUS AS OCS, OC_CHECK 
  WHERE OCS.OPERATOR_ID = [Param.1] 
    AND OCS.OPERATOR_TYPE = [Param.2] 
    AND OC_CHECK.CHECK_NAME = [Param.3] 
    AND OC_CHECK.WORKSTATION = [Param.4] 
    AND OCS.CHECK_ID = OC_CHECK.CHECK_ID 
    AND OCS.TEMPLATE_ID = OC_CHECK.TEMPLATE_ID

Этот запрос выполняется в DB2, и мы вызываем его из транзакции Java.

1 Ответ

0 голосов
/ 31 мая 2018

Этот код ошибки обычно связан с неудачным преобразованием типов данных.Существует множество причин, по которым это могло бы произойти, и я не думаю, что можно выяснить, если у вас нет / не предоставили конкретику.

Сказав, что мои догадки таковы:

  • Некоторые из этих параметров необходимо как-то преобразовать, чтобы сравнить их с соответствующими столбцами.В некоторых случаях это преобразование не работает должным образом, возможно, из-за того, что конкретное значение превышает точность и / или емкость столбца ... или что-то подобное.Вы должны получить конкретные значения параметров и попробовать выполнить запрос вручную.

  • В некоторых случаях (пользователи) может быть условие соединения OCS.TEMPLATE_ID = OC_CHECK.TEMPLATE_ID или OCS.CHECK_ID = OC_CHECK.CHECK_ID имеет несоответствующий тип данных.Возможно, столбцы похожи, но не совсем одинаковой длины, точности или масштаба.Это также может привести к ошибкам преобразования типов данных.DB2 известна тем, что позволяет сравнивать varchar с integer или другими типами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...