Teradata DBMS でテーブル Small をテーブル Large に結合する必要があります。small.A、B、C、D の 4 列をマクロ変数に選択しますが、問題は、変数がしばしばバッファ サイズを超えることです。 そのため、 105 レコードごとにチャンクごとに SQL を実行するコード ( http://support.sas.com/techsup/technote/ts553.html ) をグーグル検索しました。ここで、2 つの問題があります。1. 「file temp;」という行。私のために働いていないようです。エラー: エラー: /x/sas/config/Lev1/SASApp/temp.dat にアクセスするための認証が不十分です。2. この例では結合する列が 1 つしかありませんが、結合する列 AD は 4 つあります。誰か助けてくれませんか?私はあなたの助けに感謝します!
%let チャンク=105;
proc sql;
create view uniq as
select unique key
from small
order by key;
data _null_;
file temp;
set uniq end=end;
if _n_ = 1 then do;
put "create table result as"
/ " select key,data"
/ " from connection to dbms"
/ " (select key,data"
/ " from large where key in("
/ key;
end;
else if mod(_n_, &chunk) = 0
and not end then do;
put "));" //;
put "insert into result"
/ " select key, data"
/ " from connection to dbms"
/ "(select key,data"
/ "from large where key in("
/ key;
end;
else if end then do;
put key "));" //;
end;
else put key ",";
run;
proc sql;
connect to <DBMS> as dbms;
%inc temp;