我想将数据集的数量存储在变量中,如下所示
%let Cnt ;
create table work.delaycheck as
select * from connection to oracle
(
SELECT PTNR_ID,CLNT_ID,REPORTING_DATE_KEY,NET_SALES
FROM FACT_TABLE
MINUS
SELECT PTNR_ID,CLNT_ID,REPORTING_DATE_KEY,NET_SALES
FROM HIST_FCT
);
我想将此表的计数存储在变量Cnt中,如下所示
%put = (Select count(*) from work.delaycheck )
然后
If(Cnt=0)
THEN
DO NOTHING
ELSE
execute(
Insert into Oracle_table
select * from work.delaycheck
) by oracle;
disconnect from oracle;
quit;
我怎样才能实现这些步骤?在此先感谢!!
答案 0 :(得分:1)
从代码中删除此行
%let Cnt ;
为了得到计数:添加下面的代码将创建带有计数的宏变量Cnt:
proc sql;
Select count(*) into: Cnt from work.delaycheck ;
quit;
更新if语句:“&”用于引用宏变量
If &cnt=0
下面的代码显示了如何使用if / else和使用Call Execute:
data _null_;
if &cnt=0 then put 'Cnt is 0';/*if true: a note is written to the log*/
else call execute ('proc print data=work.e; run;');
/*else clause: the Proc Print code is executed*/
run;
答案 1 :(得分:1)
显示的所有SQL和数据都是远程进行的。您可以在不涉及SAS的情况下执行所有活动。 Oracle将处理
$(function() {
afficheConversation();
$('form').on('submit', function(e) {
e.preventDefault();
$.post('/../chat.php', {
'message': $('#message').val(),
'pseudo': $('#pseudo').val()
}, function () {
console.log('message sent: ' + message);
$('#message').val('');
afficheConversation();
});
});
});
如果事实表仅包含历史事实,则不插入任何记录。
PROC SQL;
CONNECT TO ORACLE ...;
EXECUTE (
INSERT INTO <TARGET_TABLE>
SELECT * FROM
( SELECT PTNR_ID,CLNT_ID,REPORTING_DATE_KEY,NET_SALES
FROM FACT_TABLE
MINUS
SELECT PTNR_ID,CLNT_ID,REPORTING_DATE_KEY,NET_SALES
FROM HIST_FCT
)
) BY ORACLE;
也可以提交PL / SQL语句,从而减少对无关系统相互作用的需求。