在循环

时间:2016-11-11 23:04:08

标签: sql oracle sas

我创建了一个大块脚本,它在最后将新行插入到我的目标表中。

脚本包含许多select语句和临时表。

我想循环它连续运行2000次,除了推动f5 2000次之外别无他法。

是否有Oracle SQL等效的代码将代码封装到SAS宏中并循环2000次?

2 个答案:

答案 0 :(得分:2)

PL / SQL匿名阻止在这种情况下最好:

BEGIN
    FOR i IN 1..2000 LOOP
        -- Insert scripts go here
    END LOOP
END;
/

答案 1 :(得分:0)

您可以尝试将insert语句转换为纯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