最後に新しい行をターゲット表に挿入する大きなスクリプトを作成しました。ループ内で大きなoracle SQLスクリプトを実行
スクリプトには多くのSELECT文と暫定テーブルが含まれています。
私は2000回連続して実行するようにループしたいので、f5 2000回押す以外の方法はありません。
SASマクロにコードをラップして2000回ループするというOracle SQLの同等性はありますか?
最後に新しい行をターゲット表に挿入する大きなスクリプトを作成しました。ループ内で大きなoracle SQLスクリプトを実行
スクリプトには多くのSELECT文と暫定テーブルが含まれています。
私は2000回連続して実行するようにループしたいので、f5 2000回押す以外の方法はありません。
SASマクロにコードをラップして2000回ループするというOracle SQLの同等性はありますか?
PL/SQL無名ブロックは、このような状況で最善である:
BEGIN
FOR i IN 1..2000 LOOP
-- Insert scripts go here
END LOOP
END;
/
あなたは純粋なSQLにINSERT文を変換しようとすることはできます?。これは、大量のデータをロードするための最も速く、最もクリーンなアプローチです。
これを設定すると、結果セットをデカルトで生成してrow_source生成を行うことができます。
Egが:あなたのテーブルがあり、最初に言って、次の
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に、特にOracleにはFORループはありません。むしろ、Oracleは他のデータベースと同様に、PL/SQLと密接に統合された手続き型言語を持っています。ドキュメント・リンクは、Oracle SQLではなく、PL/SQLのFORループとリンクしています。 – mathguy
何を検索しましたか?私は「SASスクリプトでOracle SQLを包み込む」ためにGoogle検索しましたが、私が知る限り、SASを理解している人のためのソリューションがあります。 – mathguy