Я не вижу, где вы используете любой из входных параметров в своей функции. Я предполагаю, что это либо преднамеренное, либо недосмотр, потому что вы упрощаете код. Также представляется, что в вашем запросе отсутствуют условия для соединения между таблицами traininfo
, schedule
и trainslot
во внешнем запросе. Кажется странным, что ваши вложенные операторы IN
поворачиваются и запрашивают таблицы schedule
и trainslot
, учитывая это отсутствие условий соединения. Я не знаю, является ли это результатом ошибок копирования и вставки или чего-то, что было пропущено при публикации вопроса или являются ли они настоящими проблемами. Я сделаю предположение о запросе, который вы намереваетесь написать, но если мое предположение ошибочно, вы должны сообщить нам, что должен делать ваш запрос (публикация выборочных данных и ожидаемых результатов была бы исключительно полезной для этого) ,
CREATE OR REPLACE FUNCTION schedule(name in varchar2,pass in varchar2)
RETURN sys_refcursor
is
l_rc sys_refcursor;
begin
open l_rc
for select t.name, s.starttime
from traininfo t,
schedule s,
trainslot ts
where t.trainid = ts.trainid
and s.slotid = ts.slotid
and s.source = 'dhaka'
and s.dest = 'borga';
return l_rc;
end;
спасибо, пещера, я добавил условия соединения, и теперь он отлично работает ... –