gpt4 book ai didi

SAS 元数据 DATA STEP 函数

转载 作者:行者123 更新时间:2023-12-01 23:12:45 25 4
gpt4 key购买 nike

我想知道当我们尝试通过数据步骤函数读取元数据时,为什么将 metadata_getnatr 函数与 metadata_resolve 函数一起使用。

例如:在 link 中涵盖的代码中

转载于此:

示例 1:使用对象 URI

data _null_;
length id $20
type $256;
rc=metadata_resolve("omsobj:Machine?@Name='bluedog'",type,id);
put rc=;
put id=;
put type=;
run;

示例 2:使用存储库 URI

data _null_;
length id $20
type $256
attr $256
value $256;

rc=metadata_resolve("omsobj:RepositoryBase?@Name='myrepos'",type,id);

put rc=;
put id=;
put type=;
n=1;
rc=1;
do while(rc>=0);


rc=metadata_getnatr("omsobj:RepositoryBase?@Name='myrepos'",n,attr,value);
if (rc>=0) then put attr=;
if (rc>=0) then put value=;
n=n+1;

end;
run;
  • 他们为什么使用 getnatr 函数?
  • metadata_resolve 是否提供 URI 作为输出,或者输出是什么?

谢谢!

最佳答案

我同意 - 这里的文档可以改进!

第一个示例非常清楚 - 提供 URI(元数据查询)并返回用于进一步逻辑/查询的类型和 Id。

第二个示例演示了一些边缘情况。它正在使用 REPO namespace (而不是通常的 SAS 命名空间)返回表示存储库的对象(例如 FOUNDATION)。您可能已经注意到,您无法用原始 metadata_resolve 函数中的 ID 替换 URI(您希望示例能够演示这一点,以提高效率)。根据documentation ,RepositoryBase 子类继承它的元数据 ID,因此这可能表明为什么不使用 URI 就无法引用它。

无论如何,澄清一下 metadata_resolve 的用法:

  • 不强制将其与 metadata_getnatr 结合使用
  • 当您想要查找从 URI 返回的元数据类型时,它非常有用
  • 当您要在多个查询中使用相同的 URI 时,它会很有用(因此将其转换为 ID 会更有效)

SAS 会在同一元数据函数中缓存您的查询,因此除非您要在多个元数据函数中使用相同的 URI,否则无需使用 metadata_resolve

关于SAS 元数据 DATA STEP 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com