Ошибка SQL: 933, SQLState: 42000 в JavaSpring [дубликат] ⇐ JAVA
-
Anonymous
Ошибка SQL: 933, SQLState: 42000 в JavaSpring [дубликат]
У меня возникли проблемы с созданием запроса. У меня есть такой SQL-запрос, который работает, если ввести его прямо в консоль:
выберите pos.code, описание позиции, to_char(pvh.report_date,'дд.ММ.гггг'), ROUND(сумма (случай, когда pvr.row_vykazu_id = 104, затем pvr.value_row_eur, иначе 0, конец),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.row_vykazu_id нет в (104), тогда pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(1,4,509,789), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(2,3), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.rowdok_vykazu_id нет в (104,1,4,509,789,2,3), тогда pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.row_vykazu_id нет в (215), тогда pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(115,510), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(116,117,118,790), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(171,172), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id в(173), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.row_vykazu_id отсутствует в (215,115,510,116,117,118,790,171,172,173) then pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id = 215, затем pvr.value_row_eur, иначе 0, конец),2), pos.bezpecnostny_limit_eur от jssa.jsa_t_pokl_vyk_hlavicka пвх внутреннее соединение jssa.jsa_t_pokl_vyk_riadky pvr на pvh.id = pvr.pokl_vyk_hla_id внутреннее соединение jssa.jsa_c_posta pos на pvh.posta = pos.id внутреннее соединение JSSA.jsa_t_river_row на pvr.river_id = rv.id где (pvh.report_date >= TO_DATE('01.12.2007', 'ДД.ММ.ГГГГ') и pvh.report_date < TO_DATE('01.01.2008', 'ДД.ММ.ГГГГ') + ИНТЕРВАЛ '1' ДЕНЬ - ИНТЕРВАЛ '1' СЕКУНД) и поз.PATRI_RPC IN (1806) и pos.type_posty='A' группировка по pvh.id, pvh.report_date, pos.code, pos.description, pos.bezpecnostny_limit_eur ЗАКАЗАТЬ ПО pvh.date_report,pos.description; Однако когда я пытаюсь импортировать его в код с помощью @Query(....,nativeQuery=true). Это выдает мне ошибку типа:
Ошибка SQL: 933, SQLState: 42000 ОРА-00933: ????????? ???????????? SQL-???????????? Servlet.service() для сервлета [dispatcherServlet] в контексте с путем [] выдал исключение [Ошибка обработки запроса: org.springframework.dao.InvalidDataAccessResourceUsageException: исключение JDBC при выполнении SQL [.......] Вот мой импорт @Query:
@Query(value = "select pos.kod,\n" + "поз.попись,\n" + " to_char(pvh.datum_vykazu,'ДД.ММ.ГГГГ'),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id = 104, тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (104), тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(1,4,509,789) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(2,3) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(сумма (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (104,1,4,509,789,2,3), то pvr.hodnota_riadku_eur else 0 end),2) ,\n" + " ROUND(sum (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (215), тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(115,510) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(сумма (случай, когда pvr.riadok_vykazu_id in(116,117,118,790), затем pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(171,172)then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(сумма (случай, когда pvr.riadok_vykazu_id in(173)then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (215,115,510,116,117,118,790,171,172,173) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id = 215, тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " pos.bezpecnostny_limit_eur\n" + "от\n" + " jssa.jsa_t_pokl_vyk_hlavicka pvh\n" + " внутреннее соединение jssa.jsa_t_pokl_vyk_riadky pvr на pvh.id = pvr.pokl_vyk_hla_id\n" + "внутреннее соединение jssa.jsa_c_posta pos на pvh.posta = pos.id\n" + " внутреннее соединение JSSA.jsa_t_riadok_vykazu rv на pvr.riadok_vykazu_id = rv.id\n" + "где (pvh.datum_vykazu >= TO_DATE('01.12.2007', 'ДД.ММ.ГГГГ') и pvh.datum_vykazu < TO_DATE('01.01.2008', 'ДД.ММ.ГГГГ') + ИНТЕРВАЛ '1' ДЕНЬ - ИНТЕРВАЛ '1' СЕКУНД)\n" + " и поз.PATRI_RPC IN (1806)\n" + " и pos.druh_posty='A'\n" + "группировать по pvh.id, pvh.datum_vykazu, pos.kod, pos.popis, pos.bezpecnostny_limit_eur\n" + "ORDER BY pvh.datum_vykazu,pos.popis;",nativeQuery = true) List SecondFindAllTheseShit(); И класс CashFlowQuery, в который я импортирую свой запрос:
публичный класс CashFlowQuery { частный длинный postOfficeCode; частное почтовое отделение String; частная дата LocalDate; частный Double InitialState; частные двойные доходы; частные двойные входящие депозиты; частный Двойной входящийВывод средств; частный Double OtherRevenues; частные двойные расходы; частные двойные отправленные депозиты; частный Двойной отправленный вывод средств; частные двойные пенсии; частное двойное социальное пособие; частные двойные прочие расходы; частный Double FinalState; частный двойной сейфЛимит; //Геттеры, сеттеры и т.д. Я уже пытался исправить эту ошибку, задав параметры в application.yml, но ничего не изменилось:
весна: йпа: платформа базы данных: org.hibernate.dialect.OracleDialect база данных: оракул
У меня возникли проблемы с созданием запроса. У меня есть такой SQL-запрос, который работает, если ввести его прямо в консоль:
выберите pos.code, описание позиции, to_char(pvh.report_date,'дд.ММ.гггг'), ROUND(сумма (случай, когда pvr.row_vykazu_id = 104, затем pvr.value_row_eur, иначе 0, конец),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.row_vykazu_id нет в (104), тогда pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(1,4,509,789), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(2,3), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.rowdok_vykazu_id нет в (104,1,4,509,789,2,3), тогда pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.row_vykazu_id нет в (215), тогда pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(115,510), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(116,117,118,790), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id in(171,172), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id в(173), затем pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.row_vykazu_id отсутствует в (215,115,510,116,117,118,790,171,172,173) then pvr.value_row_eur else 0 end),2), ROUND(сумма (случай, когда pvr.row_vykazu_id = 215, затем pvr.value_row_eur, иначе 0, конец),2), pos.bezpecnostny_limit_eur от jssa.jsa_t_pokl_vyk_hlavicka пвх внутреннее соединение jssa.jsa_t_pokl_vyk_riadky pvr на pvh.id = pvr.pokl_vyk_hla_id внутреннее соединение jssa.jsa_c_posta pos на pvh.posta = pos.id внутреннее соединение JSSA.jsa_t_river_row на pvr.river_id = rv.id где (pvh.report_date >= TO_DATE('01.12.2007', 'ДД.ММ.ГГГГ') и pvh.report_date < TO_DATE('01.01.2008', 'ДД.ММ.ГГГГ') + ИНТЕРВАЛ '1' ДЕНЬ - ИНТЕРВАЛ '1' СЕКУНД) и поз.PATRI_RPC IN (1806) и pos.type_posty='A' группировка по pvh.id, pvh.report_date, pos.code, pos.description, pos.bezpecnostny_limit_eur ЗАКАЗАТЬ ПО pvh.date_report,pos.description; Однако когда я пытаюсь импортировать его в код с помощью @Query(....,nativeQuery=true). Это выдает мне ошибку типа:
Ошибка SQL: 933, SQLState: 42000 ОРА-00933: ????????? ???????????? SQL-???????????? Servlet.service() для сервлета [dispatcherServlet] в контексте с путем [] выдал исключение [Ошибка обработки запроса: org.springframework.dao.InvalidDataAccessResourceUsageException: исключение JDBC при выполнении SQL [.......] Вот мой импорт @Query:
@Query(value = "select pos.kod,\n" + "поз.попись,\n" + " to_char(pvh.datum_vykazu,'ДД.ММ.ГГГГ'),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id = 104, тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (104), тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(1,4,509,789) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(2,3) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(сумма (случай, когда rv.strana_vykazu = 'P' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (104,1,4,509,789,2,3), то pvr.hodnota_riadku_eur else 0 end),2) ,\n" + " ROUND(sum (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (215), тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(115,510) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(сумма (случай, когда pvr.riadok_vykazu_id in(116,117,118,790), затем pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id in(171,172)then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(сумма (случай, когда pvr.riadok_vykazu_id in(173)then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда rv.strana_vykazu = 'V' и rv.je_suctovy = 'F' и pvr.riadok_vykazu_id нет в (215,115,510,116,117,118,790,171,172,173) then pvr.hodnota_riadku_eur else 0 end),2),\n" + " ROUND(sum (случай, когда pvr.riadok_vykazu_id = 215, тогда pvr.hodnota_riadku_eur else 0 end),2),\n" + " pos.bezpecnostny_limit_eur\n" + "от\n" + " jssa.jsa_t_pokl_vyk_hlavicka pvh\n" + " внутреннее соединение jssa.jsa_t_pokl_vyk_riadky pvr на pvh.id = pvr.pokl_vyk_hla_id\n" + "внутреннее соединение jssa.jsa_c_posta pos на pvh.posta = pos.id\n" + " внутреннее соединение JSSA.jsa_t_riadok_vykazu rv на pvr.riadok_vykazu_id = rv.id\n" + "где (pvh.datum_vykazu >= TO_DATE('01.12.2007', 'ДД.ММ.ГГГГ') и pvh.datum_vykazu < TO_DATE('01.01.2008', 'ДД.ММ.ГГГГ') + ИНТЕРВАЛ '1' ДЕНЬ - ИНТЕРВАЛ '1' СЕКУНД)\n" + " и поз.PATRI_RPC IN (1806)\n" + " и pos.druh_posty='A'\n" + "группировать по pvh.id, pvh.datum_vykazu, pos.kod, pos.popis, pos.bezpecnostny_limit_eur\n" + "ORDER BY pvh.datum_vykazu,pos.popis;",nativeQuery = true) List SecondFindAllTheseShit(); И класс CashFlowQuery, в который я импортирую свой запрос:
публичный класс CashFlowQuery { частный длинный postOfficeCode; частное почтовое отделение String; частная дата LocalDate; частный Double InitialState; частные двойные доходы; частные двойные входящие депозиты; частный Двойной входящийВывод средств; частный Double OtherRevenues; частные двойные расходы; частные двойные отправленные депозиты; частный Двойной отправленный вывод средств; частные двойные пенсии; частное двойное социальное пособие; частные двойные прочие расходы; частный Double FinalState; частный двойной сейфЛимит; //Геттеры, сеттеры и т.д. Я уже пытался исправить эту ошибку, задав параметры в application.yml, но ничего не изменилось:
весна: йпа: платформа базы данных: org.hibernate.dialect.OracleDialect база данных: оракул