Я работаю над хранимой процедурой Oracle. Я запускаю запрос, в котором я создаю разделы и создаю новый столбец с числовым значением. Мне нужно сохранить этот результат где-нибудь и использовать его в качестве источника, когда я обновляю свою оригинальную таблицу. Что-то вроде этого:Сохранять результаты запроса в некоторой структуре, а затем обновлять некоторую таблицу при извлечении строк из temp reultset
выберите х, у, .. из TABLEA (ROWNUM() над partiton по й) new_col где ... (перечень условий) .... условия цикла TABLEA обновления где new_col = (некоторое числовое значение цикла var) ...
Я попытался использовать курсор и объем, собирающий вывод первого запроса в переменную, но когда я запустил цикл, мне придется разобрать по одной строке курсора , Я не хочу этого ... Я хочу, чтобы обновление запускалось в нескольких строках в исходной таблице. Это возможно, если я просто запускаю свой запрос на обновление в цикле, но условия, в которых условия и вычисления нового столбца на каждой итерации кажутся неэффективными.
Без создания временного стола .. это возможно? Может кто-то, пожалуйста, помогите мне с этим
Не могли бы вы показать нам, что вы пробовали? –
Зачем вам «хранить» результаты где-то? Почему вы не можете делать все ** в одном заявлении? Зачем вам нужна процедура для этого (хранится или иным образом)? Вы должны быть в состоянии сделать все в простом SQL - это почти наверняка будет намного более эффективным, чем все, что вы можете сделать в процедуре. – mathguy
Хранилище хранится в некоторых других функциях. Если один оператор запускается в каждой итерации, не будет очень эффективным – sak