1
0
mirror of https://github.com/sasjs/core.git synced 2026-01-09 10:20:06 +00:00

Compare commits

..

2 Commits

2 changed files with 28 additions and 18 deletions

23
all.sas
View File

@@ -13505,7 +13505,7 @@ run;
%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_keychar)); %let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_keychar));
proc transpose data=&ds2(where=(tgtvar_type='C')) proc transpose data=&ds2(where=(tgtvar_type='C'))
out=&ds3(drop=_name_); out=&ds3(drop=_name_);
by KEY_HASH; by KEY_HASH PROCESSED_DTTM;
id TGTVAR_NM; id TGTVAR_NM;
var charval; var charval;
run; run;
@@ -13513,7 +13513,7 @@ run;
%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_keynum)); %let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_keynum));
proc transpose data=&ds2(where=(tgtvar_type='N')) proc transpose data=&ds2(where=(tgtvar_type='N'))
out=&ds4(drop=_name_); out=&ds4(drop=_name_);
by KEY_HASH; by KEY_HASH PROCESSED_DTTM;
id TGTVAR_NM; id TGTVAR_NM;
var numval; var numval;
run; run;
@@ -13523,7 +13523,7 @@ run;
%let ds5=%upcase(work.%mf_getuniquename(prefix=mpsd_merged)); %let ds5=%upcase(work.%mf_getuniquename(prefix=mpsd_merged));
data &ds5; data &ds5;
length key_hash $32; length key_hash $32 processed_dttm 8;
merge &ds3 &ds4; merge &ds3 &ds4;
by key_hash; by key_hash;
if not missing(key_hash); if not missing(key_hash);
@@ -13544,7 +13544,8 @@ create table &outds as select "No " as _____DELETE__THIS__RECORD_____,
/* create SAS code to apply to stage_ds */ /* create SAS code to apply to stage_ds */
data _null_; data _null_;
set &ds1; set &ds1;
file &fref1; file &fref1 lrecl=33000;
length charval $32767;
if _n_=1 then put 'proc sql noprint;'; if _n_=1 then put 'proc sql noprint;';
by descending processed_dttm key_hash is_pk; by descending processed_dttm key_hash is_pk;
if move_type='M' then do; if move_type='M' then do;
@@ -13553,7 +13554,8 @@ data _null_;
end; end;
if IS_PK=0 then do; if IS_PK=0 then do;
put " " tgtvar_nm '=' @@; put " " tgtvar_nm '=' @@;
charval=quote(cats(oldval_char)); cnt=count(oldval_char,'"');
charval=quote(trim(substr(oldval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put oldval_num @@; else put oldval_num @@;
if not last.is_pk then put ','; if not last.is_pk then put ',';
@@ -13561,7 +13563,8 @@ data _null_;
else do; else do;
if first.is_pk then put " where 1=1 " @@; if first.is_pk then put " where 1=1 " @@;
put " and " tgtvar_nm '=' @@; put " and " tgtvar_nm '=' @@;
charval=quote(cats(oldval_char)); cnt=count(oldval_char,'"');
charval=quote(trim(substr(oldval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put oldval_num @@; else put oldval_num @@;
end; end;
@@ -13573,7 +13576,8 @@ data _null_;
/* gating if - as only need PK now */ /* gating if - as only need PK now */
if is_pk=1; if is_pk=1;
put ' AND ' tgtvar_nm '=' @@; put ' AND ' tgtvar_nm '=' @@;
charval=quote(cats(newval_char)); cnt=count(newval_char,'"');
charval=quote(trim(substr(newval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put newval_num @@; else put newval_num @@;
end; end;
@@ -13582,7 +13586,8 @@ data _null_;
put "insert into &outds set _____DELETE__THIS__RECORD_____='No' " @@; put "insert into &outds set _____DELETE__THIS__RECORD_____='No' " @@;
end; end;
put " ," tgtvar_nm '=' @@; put " ," tgtvar_nm '=' @@;
charval=quote(cats(oldval_char)); cnt=count(oldval_char,'"');
charval=quote(trim(substr(oldval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put oldval_num @@; else put oldval_num @@;
end; end;
@@ -13590,7 +13595,7 @@ data _null_;
run; run;
/* apply the modification statements */ /* apply the modification statements */
%inc &fref1/source2; %inc &fref1/source2 lrecl=33000;
%if &mdebug=0 %then %do; %if &mdebug=0 %then %do;
proc sql; proc sql;

View File

@@ -120,7 +120,7 @@ run;
%let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_keychar)); %let ds3=%upcase(work.%mf_getuniquename(prefix=mpsd_keychar));
proc transpose data=&ds2(where=(tgtvar_type='C')) proc transpose data=&ds2(where=(tgtvar_type='C'))
out=&ds3(drop=_name_); out=&ds3(drop=_name_);
by KEY_HASH; by KEY_HASH PROCESSED_DTTM;
id TGTVAR_NM; id TGTVAR_NM;
var charval; var charval;
run; run;
@@ -128,7 +128,7 @@ run;
%let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_keynum)); %let ds4=%upcase(work.%mf_getuniquename(prefix=mpsd_keynum));
proc transpose data=&ds2(where=(tgtvar_type='N')) proc transpose data=&ds2(where=(tgtvar_type='N'))
out=&ds4(drop=_name_); out=&ds4(drop=_name_);
by KEY_HASH; by KEY_HASH PROCESSED_DTTM;
id TGTVAR_NM; id TGTVAR_NM;
var numval; var numval;
run; run;
@@ -138,7 +138,7 @@ run;
%let ds5=%upcase(work.%mf_getuniquename(prefix=mpsd_merged)); %let ds5=%upcase(work.%mf_getuniquename(prefix=mpsd_merged));
data &ds5; data &ds5;
length key_hash $32; length key_hash $32 processed_dttm 8;
merge &ds3 &ds4; merge &ds3 &ds4;
by key_hash; by key_hash;
if not missing(key_hash); if not missing(key_hash);
@@ -159,7 +159,8 @@ create table &outds as select "No " as _____DELETE__THIS__RECORD_____,
/* create SAS code to apply to stage_ds */ /* create SAS code to apply to stage_ds */
data _null_; data _null_;
set &ds1; set &ds1;
file &fref1; file &fref1 lrecl=33000;
length charval $32767;
if _n_=1 then put 'proc sql noprint;'; if _n_=1 then put 'proc sql noprint;';
by descending processed_dttm key_hash is_pk; by descending processed_dttm key_hash is_pk;
if move_type='M' then do; if move_type='M' then do;
@@ -168,7 +169,8 @@ data _null_;
end; end;
if IS_PK=0 then do; if IS_PK=0 then do;
put " " tgtvar_nm '=' @@; put " " tgtvar_nm '=' @@;
charval=quote(cats(oldval_char)); cnt=count(oldval_char,'"');
charval=quote(trim(substr(oldval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put oldval_num @@; else put oldval_num @@;
if not last.is_pk then put ','; if not last.is_pk then put ',';
@@ -176,7 +178,8 @@ data _null_;
else do; else do;
if first.is_pk then put " where 1=1 " @@; if first.is_pk then put " where 1=1 " @@;
put " and " tgtvar_nm '=' @@; put " and " tgtvar_nm '=' @@;
charval=quote(cats(oldval_char)); cnt=count(oldval_char,'"');
charval=quote(trim(substr(oldval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put oldval_num @@; else put oldval_num @@;
end; end;
@@ -188,7 +191,8 @@ data _null_;
/* gating if - as only need PK now */ /* gating if - as only need PK now */
if is_pk=1; if is_pk=1;
put ' AND ' tgtvar_nm '=' @@; put ' AND ' tgtvar_nm '=' @@;
charval=quote(cats(newval_char)); cnt=count(newval_char,'"');
charval=quote(trim(substr(newval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put newval_num @@; else put newval_num @@;
end; end;
@@ -197,7 +201,8 @@ data _null_;
put "insert into &outds set _____DELETE__THIS__RECORD_____='No' " @@; put "insert into &outds set _____DELETE__THIS__RECORD_____='No' " @@;
end; end;
put " ," tgtvar_nm '=' @@; put " ," tgtvar_nm '=' @@;
charval=quote(cats(oldval_char)); cnt=count(oldval_char,'"');
charval=quote(trim(substr(oldval_char,1,32765-cnt)));
if tgtvar_type='C' then put charval @@; if tgtvar_type='C' then put charval @@;
else put oldval_num @@; else put oldval_num @@;
end; end;
@@ -205,7 +210,7 @@ data _null_;
run; run;
/* apply the modification statements */ /* apply the modification statements */
%inc &fref1/source2; %inc &fref1/source2 lrecl=33000;
%if &mdebug=0 %then %do; %if &mdebug=0 %then %do;
proc sql; proc sql;