我试图自动创建基于此数据集某些完整性约束:SAS:自动化完整性约束创建
ds_name | var_name | ic_clause | ic_msg
--------+----------+------------------------------------+-----------------------
tableA | var1 | primary key($var$) | $var$ is a primary key
tableB | var2 | check(where=($var$ in ('a', 'b'))) | invalid $var$ value
的想法是创建一个通用的程序,通过这个数据集循环并创建相应的集成电路。在这种特殊情况下,等效硬编码的程序应该是:
proc datasets nolist;
modify tableA;
ic create primary key(var1)
message = "var1 is a primary key";
quit;
proc datasets nolist;
modify tableB;
ic create check(where=(var2 in ('a', 'b')))
message = "invalid var2 value";
quit;
这些都是我在节目想象中的步骤,但我需要帮助,将其转化为实际的代码:
- 获取的值一排,放在宏观变量
- 实际变量名称替换是$ var $子在列VAR_NAME
通过所有行
任何人都可以请帮我这个代码运行的通用PROC数据集,例如:
proc datasets nolist;
modify &my_ds;
ic create &my_clause
message = &my_msg;
quit;
谢谢!
http://www2.sas.com/proceedings/sugi25/25/cc/25p077.pdf – user667489
@ user667489感谢为文章!数据驱动编程确实是一个有趣的概念。 –