Sas 锁定目录中的格式

Sas 锁定目录中的格式,sas,Sas,我想在一个目录中锁定一个单独的格式,但我不确定是否有一种没有SAS/SHARE的方法。以下是一些示例格式: proc format ; picture testfmt1 low-high='000,000' (prefix='$'); picture testfmt2 low-high='000,000' ; run; 我可以使用下面的代码锁定整个目录,但我只想锁定目录中的一种格式,我无法找出正确的语法,也找不到所使用语法的任何具体示例。锁定整个目录的代码: lock work.for

我想在一个目录中锁定一个单独的格式,但我不确定是否有一种没有SAS/SHARE的方法。以下是一些示例格式:

proc format ;
  picture testfmt1 low-high='000,000' (prefix='$');
  picture testfmt2 low-high='000,000' ;
run;
我可以使用下面的代码锁定整个目录,但我只想锁定目录中的一种格式,我无法找出正确的语法,也找不到所使用语法的任何具体示例。锁定整个目录的代码:

lock work.formats.catalog;
lock work.formats.catalog clear;
我没有SAS/SHARE,但文档似乎说需要锁定单个条目。我对术语不太熟悉,因此产生了混淆:

上面的文档说明锁定条目的语法是:

LOCK libref<.member-name<.member-type | .entry-name.entry-type>> <LIST | QUERY | SHOW | CLEAR>; 

任何关于什么可以做、什么不能做以及正确语法的澄清都是非常好的。

据我所知,没有SAS/SHARE的SAS中的任何环境都不支持行级锁定(请参见示例)。基本上就是这样(目录相当于一个数据集,所以目录条目基本上是一行或一组行)

假设您的目标是拥有一组用户必须使用且不能编辑的格式,一个选项是拥有一个完全锁定并存储在共享位置的主格式目录,然后允许用户将格式自定义为另一个格式目录。然后使用
fmtsearch
设置优先级,以使锁定的格式目录具有优先级

options fmtsearch=(master work user library);

work
library
必须在此处明确列出,以避免它们在默认情况下获得优先权。

Ahh-将目录看作数据集可以让事情更清楚,谢谢。目标是防止同一台机器上的两个不同作业(一个读取,一个写入)试图同时访问相同的格式。我有一个丑陋的解决方法,我可以用它来解决问题,我只是在寻找一个更干净的方法。@RobertPenridge啊,很有趣。在这种情况下,在社区和/或SAS-L上发表一篇文章可能是值得的;我当然不是这方面的专家。
options fmtsearch=(master work user library);