我已經創建了一大段腳本,它將最後一行的新行插入我的目標表中。在一個循環中運行一個大的oracle SQL腳本
腳本包含許多SELECT語句和臨時表。
我想循環它連續運行2000次,並不能看到比F5推2000次任意選擇。
是否有一個的Oracle SQL相當於包裹代碼到SAS宏和循環它2000倍?
我已經創建了一大段腳本,它將最後一行的新行插入我的目標表中。在一個循環中運行一個大的oracle SQL腳本
腳本包含許多SELECT語句和臨時表。
我想循環它連續運行2000次,並不能看到比F5推2000次任意選擇。
是否有一個的Oracle SQL相當於包裹代碼到SAS宏和循環它2000倍?
PL/SQL匿名塊最好是在這種情況:
BEGIN
FOR i IN 1..2000 LOOP
-- Insert scripts go here
END LOOP
END;
/
你可以嘗試插入語句轉換成純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。您的文檔鏈接是PL/SQL中的FOR循環,而不是Oracle SQL中的。 – mathguy
你搜索了什麼?我只是Google搜索「用SAS腳本包裝Oracle SQL」,並且從我所知道的情況來看,有些解決方案可以爲理解SAS的人提供。 – mathguy