楼主: shenliang_111
4591 20

[问答] 好久没看到hopewell犀利的程序了.. [推广有奖]

11
jingju11 发表于 2011-8-27 01:58:15
hongxx 发表于 2011-8-27 00:32
我倒觉得这个不是好习惯哦。
oh, may i know why?

jingju

12
hongxx 发表于 2011-8-27 20:37:21
jingju11 发表于 2011-8-27 01:58
oh, may i know why?

jingju
代码假如要给他人看的,日常维护的,比如每日执行的ETL调度程序,当涉及较多个LIB的时候,尤其代码长的时候,这样切换可能会给后来维护的人添加麻烦的。比如当事人离职,后来者接手,有所不便吧。
当然,这是我的个人观点。
如果是自用,当然可以省敲一些代码。不过这个劳动量也不大,可以看个人习惯。

13
jingju11 发表于 2011-8-27 21:31:37
hongxx 发表于 2011-8-27 20:37
代码假如要给他人看的,日常维护的,比如每日执行的ETL调度程序,当涉及较多个LIB的时候,尤其代码长的时 ...
诚恳地讲,我对sas的认识和使用尚未达到

...误己。

京剧

14
hongxx 发表于 2011-8-28 19:45:17
jingju11 发表于 2011-8-27 21:31
诚恳地讲,我对sas的认识和使用尚未达到你所指的程度。仍然是处于到处偷工减料的自喜之中。一个项目,初 ...
呵呵,客气了,我sas也是一般般。
我的意思是:写代码不要闲麻烦,如果处理的是永久性数据集的话,最好把libname带上。用user=  的目的,仅仅省去了不用敲每个数据集前面的lib吧。

If you want the convenience of specifying only a one-level name for permanent, not temporary, SAS files, then use the USER= system option”
假如:
options user=(lib1 lib2);
这样可以一级名称引用lib1 和lib2的数据集,但是数据集存在同名的话,处理的数据集是将lib1里的,问题在于假如代码是不需要给别人看到,那没什么问题,自己知道问题所在。但若给别人看的话,这样恐怕就不是个可以偷功夫的地方了。
当然可以不要user同时指向多个Lib,这样options user=的可能在代码出现多处,因为如果你要处理的是多个lib的数据集的话。
这是我的想法。

15
soporaeternus 发表于 2011-8-29 09:03:25
糖果是甜的,呵呵

Let them be hard, but never unjust

16
jingju11 发表于 2011-8-29 23:37:14
hongxx 发表于 2011-8-28 19:45
呵呵,客气了,我sas也是一般般。
我的意思是:写代码不要闲麻烦,如果处理的是永久性数据集的话,最好把 ...
Fine. I will think about it. Thanks.
JingJu

17
Actree 发表于 2011-8-30 23:23:51
我觉得Hopewell总体水平跟soporaeternus 差不多

18
baojiwolong 发表于 2011-9-6 17:01:29
soporaeternus 发表于 2011-8-26 08:58
提问的不给力啊,一般提个难点得问题,然后面朝北心中默念三声,"hopewell大大",必在三楼内出现
很准,切 ...
一语道破天机啊!呵呵!

19
kuhasu 发表于 2011-9-20 01:23:31
jingju11 发表于 2011-8-29 23:37
Fine. I will think about it. Thanks.
JingJu
直接改nls cfg

20
jingju11 发表于 2011-9-20 01:40:57
kuhasu 发表于 2011-9-20 01:23
直接改nls cfg
非常感谢。
改变cfg表已经超出我的知识和能力(我是一个有一定sas经验的菜鸟)。
另外我已经放弃了对这个问题的讨论。通过options指定permanent lib当然具备以上各位所指出的缺点。但是好像比较适合我现在所作的。
京剧

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 03:33