На мой взгляд, правильный SQL INSERT
- правильный путь, то есть
insert into persons
(id, lastname, firstname, housenumber)
select id, lastname, firstname, housenumber
from persons_staging;
Если вы хотите выполнить обработку , делайте это, пока данные находятся в промежуточной таблице,если вы не можете включить эти преобразования в вышеприведенный оператор INSERT
(такой как initcap
или upper
, который вы упомянули).
Если вы планируете использовать какой-то PL / SQL, проходите все этапыстроки таблицы, делая что-то с каждой строкой и затем перемещая ее в целевую таблицу - ну, это, вероятно, будет очень медленно.Строка за строкой идет медленно-медленно.
Если возможно, делайте все, что вы делаете, так, чтобы это влияло на весь набор данных, а не по частям.
Кроме того, старайтесь избегать переключения контекста (пишите SQL, который вызывает PL / SQL и повторяет это много раз).Если у вас есть процедура PL / SQL, в которой используются операторы SQL, нет проблем - это прекрасно работает.