вы не можете выполнять операции установки UPDATE для типов объектов.Вам придется делать это построчно, как в:
FOR i IN l_tab.FIRST..l_tab.LAST LOOP
SELECT src.unit_address,
src.unit_city,
src.unit_state,
src.unit_zip_code
INTO l_tab(i).street,
l_tab(i).city,
l_tab(i).STATE,
l_tab(i).zip
FROM (your_query) src;
END LOOP;
Поэтому вы должны попытаться выполнить все вычисления во время создания (где вы можете НАБЛЮДАТЬ ОБЪЕМ).Очевидно, что если вашему процессу требуется много шагов, вы можете обнаружить, что глобальная временная таблица превосходит структуру в памяти.
Из последних заданных вами вопросов кажется, что вы пытаетесь заменить все глобальные временныетаблицы с объектными таблицами.Я хотел бы предложить осторожность, потому что в целом они не являются взаимозаменяемыми:
- Таблицы объектов являются структурами в памяти: вы не хотите загружать таблицу с миллионами строк в память.Они в основном используются в качестве буфера: вы загружаете несколько (например, 100) строк в структуру, выполняете то, что вам нужно сделать с этими строками, а затем загружаете следующий пакет.Вы не можете легко обработать эту структуру как обычную таблицу: например, вы можете эффективно выполнять поиск в этой структуре только со стандартным ключом индексации (вы не можете осуществлять поиск по rowid в вашем примере, если не определите структуру, которая будет проиндексирована по rowid).
- Временные таблицы, с другой стороны, очень похожи на обычные таблицы.Вы можете загружать в них миллионы строк, выполнять соединения, сложные операции над множествами.Вы можете индексировать временную таблицу для дальнейшей оптимизации.
По моему мнению, изменения, которые вы пытаетесь провести, потребуют серьезного пересмотра вашей логики и могут не работать лучше.В общем, вы бы не заменили GTT таблицами объектов.Вы можете быть в состоянии удалить GTT со значительным приростом производительности, непосредственно используя операции SET (выполняйте масштабное ОБНОВЛЕНИЕ / УДАЛЕНИЕ / ВСТАВЛЕНИЕ ваших данных напрямую без промежуточной таблицы).
Я бы предложилвыполнение тестов перед выбором решения (это, вероятно, то, что вы делаете сейчас:)