У меня возникли проблемы с возвратом указателя на запрос.
Вот мой текущий код:
create or replace procedure getRoute(route IN varchar, routeday IN varchar)
return sys_refcursor is
v_rc sys_refcursor;
begin
select DISTINCT BBT_JOURNEYSTOPS.SERVICE "Service", BBT_JOURNEYSTOPS.STOP_REFERENCE "StopNo",
STOP_NAME "Near", BBT_STOPS.ROAD_NAME "On", BBT_JOURNEYSTOPS.JOURNEYTIME "Duration"
from BBT_JOURNEYSTOPS
inner join BBT_WEEKLYSCHEDULE
on BBT_WEEKLYSCHEDULE.SERVICE = BBT_JOURNEYSTOPS.SERVICE
inner join BBT_STOPS
on BBT_JOURNEYSTOPS.STOP_REFERENCE = BBT_STOPS.STOPREF
where (UPPER(BBT_JOURNEYSTOPS.SERVICE) LIKE UPPER('%'|| :route || '%')) AND
(TO_NUMBER(SUBSTR(BBT_WEEKLYSCHEDULE.TIMEUNTIL, 1, 2)) > TO_NUMBER(TO_CHAR(SYSDATE, 'HH24')))
ORDER BY BBT_JOURNEYSTOPS.SERVICE, BBT_JOURNEYSTOPS.JOURNEYTIME;
return timetable;
end;
/
DECLARE
rc refcursor;
BEGIN
exec :rc := getRoute(:route, :routeday);
END;
Я получаю синтаксическую ошибку в первой строке, говорящую «Ожидаемый AUTHID, EXTERNAL». Однако я также не уверен, что код, который я написал, будет выполняться правильно. Любые подсказки или советы будут с благодарностью.