Отсутствует параметр IN или OUT в индексе :: 2

sql oracle

7013 просмотра

1 ответ

54 Репутация автора

Я использовал приведенный ниже запрос и получил исключение, как показано ниже.

java.sql.SQLException: отсутствует параметр IN или OUT в index :: 2

Пожалуйста помоги.

select s.ship_id from SHIP S where S.ship_id not in (SELECT ship_id FROM ship WHERE notes1 IS NOT NULL 
AND notes1 IN (select notes1 from ship WHERE SHIP_ID <> ? ))
AND S.SHIP_ID = ?
Автор: user2469253 Источник Размещён: 18.07.2016 12:52

Ответы (1)


1 плюс

876401 Репутация автора

Этот оператор имеет две ссылки на параметры:

select s.ship_id
from SHIP 
where S.ship_id not in (SELECT ship_id
                        FROM ship
                        WHERE notes1 IS NOT NULL AND
                              notes1 IN (select notes1 from ship WHERE SHIP_ID <> ?
                                        )
                      ) and
      S.SHIP_ID = ?;

Когда вы выполняете запрос, вам нужно предоставить оба из них, даже если они - предположительно - одинаковы.

Вам кажется, что корабли, где notes1поле уникально для корабля. Вы можете сделать это другими способами:

select s.shipid
from (select s.*,
             min(shipid) over (partition by notes1) as mins,
             max(shipid) over (partition by notes1) as maxs
      from ships s
     ) s
where mins = maxs and shipid = ?;
Автор: Gordon Linoff Размещён: 18.07.2016 01:09
Вопросы из категории :
32x32