У меня есть класс PHP A и класс B. Они существуют независимо, и для каждого из них у меня есть эквивалентные определения Oracle PL/SQL, т.е.
type cursorA is ref cursor return recordA;
type cursorB is ref cursor return recordB;
позволяя возвращать несколько строк данных для создания нескольких объектов A или B PHP в одном вызове базы данных. Все идет нормально...
В определенных обстоятельствах мне требуется, чтобы один запрос возвращал объединенные поля записи A и записи B в одном курсоре A + B.
Я могу добиться этого, создав новую единственную запись C, объединяющую все поля из записей A и записей B, а затем выполнив курсор C, чтобы вернуть логическую информацию «A + B», однако это эффективно дублирует определения записей A и B, и я бы предпочел избежать этого с помощью делать что-то вроде:
type recordC is record (recordA plus recordB);
type cursorC is refcursor return recordC;
or
type cursorC is ref cursor return recordA plus recordB;
Приведенные выше утверждения не работают, но меня интересует, возможно ли в PL/SQL достичь некоторого эквивалента, который позволит повторно использовать/объединять определения записи A и записи B, а не требовать дублирования полей записи A и записи B в записьC.
Чтобы было ясно, это НЕ дубликат «объединения данных из курсоров в один». Это одиночный запрос, создающий 1 курсор, возвращаемые столбцы которого имеют значение recordC. «Разделение» запроса на 2 отдельных запроса может привести к значительному снижению производительности, и это не та функциональность, которую я ищу.