function pc_ProcessDetailesRep(start_date in date) return t_ProcessDetailesItem_dataset pipelined
возвращает некий датасет. требуется дергать ее увеличивая дату в цикле в неком интервале дат и вернуть то что она возвращает в виде одной объединенной выборки.
на mssql подобная хрень как два пальца. тут всю голову уже сломал (((
Здравствуйте, aios, Вы писали:
A>допустим есть функция
function pc_ProcessDetailesRep(start_date in date) return t_ProcessDetailesItem_dataset pipelined
A>возвращает некий датасет. требуется дергать ее увеличивая дату в цикле в неком интервале дат и вернуть то что она возвращает в виде одной объединенной выборки. A>на mssql подобная хрень как два пальца. тут всю голову уже сломал (((
А в чем проблема-то? Вернуть датасет? Посмотри на ref cursor.
Здравствуйте, aios, Вы писали:
A>допустим есть функция
A>
A>function pc_ProcessDetailesRep(start_date in date) return t_ProcessDetailesItem_dataset pipelined
A>
A>возвращает некий датасет. требуется дергать ее увеличивая дату в цикле в неком интервале дат и вернуть то что она возвращает в виде одной объединенной выборки.
А зачем ее дергать в цикле? Перепиши функцию, чтоб она принимала два параметра даты. И дергай сразу полный датасет за этот период. Если функцию переписать нельзя, то сделай ее просто overload и все. В чем проблема-то?
LN>А зачем ее дергать в цикле? Перепиши функцию, чтоб она принимала два параметра даты. И дергай сразу полный датасет за этот период. Если функцию переписать нельзя, то сделай ее просто overload и все. В чем проблема-то?
да задолбаюсь переписывать. оракл знаю на уровне стандарта sql практически. на mssql сидел. мата уже практически не остается....
LN>>А зачем ее дергать в цикле? Перепиши функцию, чтоб она принимала два параметра даты. И дергай сразу полный датасет за этот период. Если функцию переписать нельзя, то сделай ее просто overload и все. В чем проблема-то?
A>да задолбаюсь переписывать. оракл знаю на уровне стандарта sql практически. на mssql сидел. мата уже практически не остается....
это не повод в индуском стиле долбить в цикле. за такое и в мсскл больно бьют
Так не пойдет?
Select q.dt, qq.*
From
(Select (Trunc(Sdate) +Level-1) as Dt
From dual
Connect by level< (trunc(Edate) — Trunc(Sdate) +1)
) q
Join table(pc_ProcessDetailesRep(q.dt)) qq on (1=1)