楼主: pobel
35772 49

[学习分享] 关于CALL EXECUTE()   [推广有奖]

41
gaotao0727 发表于 2014-1-27 15:41:12
谢谢!要好好学习~~
衣带渐宽终不悔,为伊消得人憔悴~~

42
牵你↗左手 发表于 2014-1-28 09:56:04
学习了

43
Tigflanker 发表于 2014-9-4 11:02:36
大神,我想请问下,call execute出的log有没有option可以屏蔽掉呢?


奥,刚试过好像nosource可以,呵呵

44
cnwz 发表于 2014-9-4 21:33:50
前几天看到一段程序用了这个,当时没有明白,现在清楚了,谢谢

45
yangz98 发表于 2014-11-18 18:18:55
回过头来再读一遍 觉得写的真好

46
wyzh 发表于 2014-11-25 00:33:50
保存下来了,等有时间了慢慢学习.多谢整理

47
老七的人大 发表于 2014-12-1 13:02:19
非常有用的说!

48
gggwww 发表于 2021-4-9 11:17:30
楼主太厉害了,我只看了个半懂,保存先。

49
kangjiang 发表于 2024-7-17 16:39:16
pobel 发表于 2013-4-28 20:52
CALL EXECUTE() 中的宏语句

如果CALL EXECUTR()的参数中有宏语句,那么宏语句在何时执行会有三种情况:
...
想问下,这个例子中,如果是call execute('%test(7,"||strip(age)||")');,为何X值为空值,且还会有一个变量age呢,新手,不太明白。感谢回复

50
biostat_wang 发表于 2024-8-19 15:40:22
kangjiang 发表于 2024-7-17 16:39
想问下,这个例子中,如果是call execute('%test(7,"||strip(age)||")');,为何X值为空值,且还会有一个变 ...
我理解应该是,你的单引号位置和invoke 3存在区别,你的单引号将整个%test全部括起来了,这个时候 ("||strip(age) ||" )仅仅只是属于字符,和sashelp.class里面的age没有关系。在执行test宏的时候,data a7; num = 7; x = ""||strip(age) ||""; run; 这时候,在a7这个data步编译阶段,会生成age,但是age值是空的, x的值也是空的。

楼主的invoke3 第一个单引号和第二个单引号将%test(3, 括起来了,data _null_的执行阶段  执行strip(age) 这个操作,然后age变成字符型 x = "14",然后再使用|| ')' 把整个宏程序进行括号。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 09:49