伙计们,我真的很挣扎。
需要更新的表有 ~15M 行和 ~200 列。
我需要使用工作表更新几列。
这是(部分)我需要做的:
%macro condition;
%if &row_count>0 %then %do;
data _null_;
set W4TWGKJ6 end=final;
if _n_ = 1 then call execute("proc sql ;");
call execute
("update dds.insurance_policy set X_STORNO_BY_VERSION="||TOSNUM||" where policy_no='"||cats(polid)||"' and X_INSURANCE_PRODUCT_CD='"||cats(prodid)||"'
and X_INSURER_SERIAL_NO = "||X_INSURER_SERIAL_NO||" and x_source_system_cd ="||'"5"'||" and x_source_system_category_cd ="||'"5"'||" and x_current_ind = "||'"Y"'||";,
update dds.insurance_policy set STATUS_CHANGE_DT="||ISSUE_DT||" where policy_no='"||cats(polid)||"' and X_INSURANCE_PRODUCT_CD='"||cats(prodid)||"'
and X_INSURER_SERIAL_NO = "||X_INSURER_SERIAL_NO||" and x_source_system_cd ="||'"5"'||" and x_source_system_category_cd ="||'"5"'||" and x_current_ind = "||'"Y"'||";");
if final then call execute('quit;'); run;
%end;
%mend;
%condition;
我首先检查表(&row_count)中是否有行,如果有,
我使用名为 W4TWGKJ6 的工作表更新 2 列(我需要更新 5,我只是从示例中删除它们)。
此更新需要永远。事实上,我每次都停止这个过程,因为它工作了几个小时而没有返回任何东西......
有谁知道这个问题的更好解决方案?
在此先感谢,加尔。