【问题标题】:Get server info for all librefs获取所有 libref 的服务器信息
【发布时间】:2018-05-30 11:23:58
【问题描述】:

我怎样才能得到一个包含变量libref 和server_id(或任何服务器信息)的表,用于我在SAS 中可用的所有库?

我的目标是汇总所有这些库的数据物理位置,以便在从不同服务器获取数据时编写高效的查询。

【问题讨论】:

标签: sas enterprise-guide


【解决方案1】:

查看 SASHELP.VLIBNAM(或使用 PROC SQL 时的 DICTIONARY.LIBNAMES)视图中可用的信息。

这是一个实用宏,它从该视图中为给定的 libref 拉取引擎、主机和架构。我已经将它用于 TERADATA、ORACLE 和 ODBC 引擎。 dblibchk.sas

【讨论】:

  • 谢谢汤姆,你又救了我一次
【解决方案2】:

根据 Tom 的代码和建议,我用这段代码构建了我需要的表:

PROC SQL;
SELECT distinct libname, engine, path,
CASE WHEN engine in('BASE','V9') THEN 'SAS' ELSE catx('_',engine,path) END AS server
FROM DICTIONARY.LIBNAMES ;
QUIT;

【讨论】:

    【解决方案3】:

    像 Tom 提到的那样,图书馆 SASHELP 中有一些表格可以帮助您。 您还可以使用 VTABLE 将拥有库中的所有表,而 VCOLUMN 将拥有从库到表到列的详细信息以及使用的数据类型和长度。 它们的工作方式有点像 information_schema 数据库中的 SQL 数据。

    在数据集上使用 proc 内容也将返回它的所有组件,您可以将其放入表或宏变量中。 希望这会有所帮助!

    【讨论】:

    • 哦,我认为您需要更多详细信息,而不仅仅是服务器路径 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多