Я бы хотел вернуть несколько курсоров за одну процедуру, одну на основе другой.
Мой текущий код:
TYPE REFCURSOR IS REF CURSOR;
PROCEDURE GETCARS(oCARS OUT REFCURSOR)
BEGIN
OPEN oCARS FOR SELECT * FROM CARS;
END GETCARS;
Я не уверен, что это возможно, но я хочу сделать что-то вроде:
PROCEDURE GETCARS(oCARS OUT REFCURSOR, oREPAIRS OUT REFCURSOR)
BEGIN
OPEN oCARS FOR SELECT * FROM CARS;
..??..
END GETCARS;
, который будет возвращать в качестве второго параметра все исправления, связанные с текущей выбранной строкой oCARS.
(Таблица ремонта имеет ФК для id_car из автомобилей)
Теперь я делаю это на стороне C #, когда я выбираю одну строку из курсора oCARS, я вызываю вторую процедуру, которая дает мне список исправлений, но, возможно, как-то возможно сделать это за одну процедуру (что даст мне прирост производительности? - Я не хочу использовать join, потому что он возвращает умноженные автомобили для каждого ремонта)