Вы можете попытаться преобразовать операторы вставки в чистый SQL ?. Это самый быстрый и самый чистый подход к загрузке большого количества данных.
После того, как вы настроились, генерация row_source может быть выполнена путем декартовой обработки результата.
Например: Скажите, первоначально ваша таблица имеет следующий
EmpNo, EmpName, Sal
1000 , Mark , 500
1001 , Jorja , 100
Я хочу, чтобы генерировать содержимое таблицы 3 раза, то я хотел бы сделать следующее
insert into emp
select (select max(empno)
from emp
)+lvl as empNo
, empName
, Sal
from emp
join (select level as lvl
from dual
connect by level<=3
)row_source_generation
on 1=1;
Это даст следующий результат
EmpNo, EmpName, Sal
1000 , Mark , 500
1001 , Jorja , 100
1002 , Mark1 , 500
1003 , Jorja1 , 100
1004 , Mark2 , 500
1005 , Jorja2 , 100
1006 , Mark3 , 500
1007 , Jorja3 , 100
Oracle имеет цикл «FOR», как и большинство языков программирования. Проверьте документы или [здесь] (https://www.techonthenet.com/oracle/loops/for_loop.php). –
@EdGibbs - Oracle SQL не является «языком программирования» так, как вы это понимаете. В SQL нет вообще цикла FOR и вообще в Oracle. Скорее, Oracle, как и другие базы данных, имеет тесно интегрированный процедурный язык PL/SQL. Ссылка на документацию связана с циклом FOR в PL/SQL, а не с Oracle SQL. – mathguy
Что вы искали? Я просто Googled для «обертывания Oracle SQL в скрипте SAS», и из того, что я могу сказать, есть решения, предлагаемые для людей, которые понимают SAS. – mathguy