我有一个 SAS 脚本,可以从视图复制数据并将其保存到表中。其中包括一个列,该列给出了视图上次运行的日期 (current_date AS sist_oppdatert)。
我预计每当运行 SAS 脚本时,它都会从视图中获取新数据 - 今天是“sist_oppdatert”列中的日期。
情况似乎并非如此,因为“sist_oppdaert”列没有更新。它显示了旧日期,然后我认为我获得的数据也已过时(尚未找到验证方法)。 如果我直接在 Teradata 中手动运行相同的 SQL 代码,那么一切都会完美运行。不是来自 SAS,甚至没有任何错误。我需要这一切自动发生。
那么我如何确保表格每天更新,并包含正确的数据和日期?
SAS 脚本:
proc sql;
connect to teradata
(user="&user_id_td." password=&pwd. mode=teradata server=gjprodaz connection=global);
execute (
delete from NL.KUB_2_kundedata_tbl
)
by teradata;
quit;
proc sql;
connect to teradata
(user="&user_id_td." password=&pwd. mode=teradata server=gjprodaz connection=global);
execute (
insert into NL.KUB_2_kundedata_tbl
select distinct * from NL.KUB_2_kundedata
;
)
by teradata;
quit;
过了一段时间,我意识到我根本没有任何证据证明日程安排有效。 然后我注意到该脚本是通过不同的用户运行的。 我尝试使用该用户运行脚本,然后失败并显示“没有更多的假脱机空间”。
所以整个问题是计划用户的属性,与手动用户不同。