<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Macro program to pull out library details from the server in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158542#M30968</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am looking to develop a macro so that that macro can pull out the list of libraries details from a server along with the memtype information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example I am working on SASApp Server and the server has 50 libraries, in these libraries each library contains 50 to 60 tables so I need to pull out all the information about the libraries and tables along with the libref, path and schema details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Eventually we can use Proc contents data=libref._all_ out=dataset name; run;&lt;/P&gt;&lt;P&gt;The problem here is every time I have to give the libref name to pull out the information about a paticular library. I need the program should itself assign the libref and populate information about the list of libraries and memtype details.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 09 Feb 2015 07:13:41 GMT</pubDate>
    <dc:creator>Rabindra</dc:creator>
    <dc:date>2015-02-09T07:13:41Z</dc:date>
    <item>
      <title>Macro program to pull out library details from the server</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158542#M30968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am looking to develop a macro so that that macro can pull out the list of libraries details from a server along with the memtype information.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example I am working on SASApp Server and the server has 50 libraries, in these libraries each library contains 50 to 60 tables so I need to pull out all the information about the libraries and tables along with the libref, path and schema details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Eventually we can use Proc contents data=libref._all_ out=dataset name; run;&lt;/P&gt;&lt;P&gt;The problem here is every time I have to give the libref name to pull out the information about a paticular library. I need the program should itself assign the libref and populate information about the list of libraries and memtype details.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Feb 2015 07:13:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158542#M30968</guid>
      <dc:creator>Rabindra</dc:creator>
      <dc:date>2015-02-09T07:13:41Z</dc:date>
    </item>
    <item>
      <title>Re: Macro program to pull out library details from the server</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158543#M30969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is this UNIX or Windows or anything else? It looks like you will need to either embed your SAS code within the native environment's programming language or the other way around. In UNIX, this can be achieved using shell scripting and some SAS; for other environments, we will have to check. Either way, some more details might help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Feb 2015 20:09:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158543#M30969</guid>
      <dc:creator>PoornimaRavishankar</dc:creator>
      <dc:date>2015-02-11T20:09:24Z</dc:date>
    </item>
    <item>
      <title>Re: Macro program to pull out library details from the server</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158544#M30970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you able to get an automated list of the folders you would like to report on?&amp;nbsp; If so, the rest is nearly easy.&amp;nbsp; If not, how would SAS know which folders to examine?&amp;nbsp; You wouldn't want to examine every folder on the system.&amp;nbsp; You wouldn't even want to use the metadata from SASHELP unless you are willing to hardcode the exceptions like WORK, MAPS, etc.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Feb 2015 20:29:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158544#M30970</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-02-11T20:29:05Z</dc:date>
    </item>
    <item>
      <title>Re: Macro program to pull out library details from the server</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158545#M30971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you see the information you need then you could use the Dictionary tables with proc sql.&lt;/P&gt;&lt;P&gt;From the online help:&lt;/P&gt;&lt;DIV class="table"&gt;&lt;A name="p0ktkqktxiib8fn15mlrsy4doy81"&gt;&lt;/A&gt;&lt;BR /&gt;&lt;DIV class="title"&gt;DICTIONARY Tables and Associated SASHELP Views&lt;/DIV&gt;&lt;BR /&gt;&lt;TABLE cellspacing="0" class="tgroup"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: left;" valign="bottom"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1nbfdup7dz4nzn1mi94lhkb9yhu"&gt;&lt;/A&gt;DICTIONARY &lt;BR /&gt;Table &lt;/DIV&gt;&lt;/TH&gt;&lt;TH style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1vr8p6ctjfd0yn1v571ca5vik2s"&gt;&lt;/A&gt;SASHELP View &lt;/DIV&gt;&lt;/TH&gt;&lt;TH style="text-align: left;" valign="bottom"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0w1o4bvweoa6wn1v28brl8cukpi"&gt;&lt;/A&gt;Description &lt;/DIV&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class="firstRow" style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1wmjyaddnfoxwn1c8h4455f8xru"&gt;&lt;/A&gt;CATALOGS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD class="firstRow" style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1v00ldwdca0f1n1s0oc7syqwaa1"&gt;&lt;/A&gt;VCATALG &lt;/DIV&gt;&lt;/TD&gt;&lt;TD class="firstRow" style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1a5xsy7uif5dkn1fb70agkd7nwk"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known SAS catalogs. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1f388ty38psr1n0z4vl7wolhq5w"&gt;&lt;/A&gt;CHECK_CONSTRAINTS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0q3vhk200l9fsn14o2o2bnxy8pt"&gt;&lt;/A&gt;VCHKCON &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n12kxr0e6gl0kcn17zcrv7vc54b7"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known check constraints. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n09ug4v9ule291n1oknehzxdpf4e"&gt;&lt;/A&gt;COLUMNS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0dto916zliarfn12lf7djw5rqdl"&gt;&lt;/A&gt;VCOLUMN &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0wppwhib3mh3en1f1dfb1j8wvr0"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about columns in all known tables. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0ts62dgilxb31n1oaq14g1tjk2n"&gt;&lt;/A&gt;CONSTRAINT_COLUMN_USAGE &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1e73ptmoxl018n0zzgy7lxd0lki"&gt;&lt;/A&gt;VCNCOLU &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n005jc75mv9y5on1t8926ewpf0rf"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about columns that are referred to by integrity constraints. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1j047nngqok4bn1g6i7yba7ycvu"&gt;&lt;/A&gt;CONSTRAINT_TABLE_USAGE &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0za49vvr6dyzyn0zawo2wf1oeyr"&gt;&lt;/A&gt;VCNTABU &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1idbjtee4q92hn1xze3g6bnk5ut"&gt;&lt;/A&gt;Contains information about tables that have integrity constraints defined on them. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n01hqziudu1lenn14psjkutyfajf"&gt;&lt;/A&gt;DATAITEMS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n12azfrq1gj7b5n1uamxlswati1w"&gt;&lt;/A&gt;VDATAIT &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1jz0b5ff8hj4kn1i83h1tcntqj6"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known information map data items. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0hf9fk03i0oben17t996unr2e2n"&gt;&lt;/A&gt;DESTINATIONS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p02nz5wh5qdji7n1lrun2uxxv4g1"&gt;&lt;/A&gt;VDEST &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1415h9axmm9r9n1go0do9urmjif"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known ODS destinations. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1sj1dlz973qcqn14ix855ma11o5"&gt;&lt;/A&gt;DICTIONARIES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1odtou88r08n1n11bzmhp0vs1as"&gt;&lt;/A&gt;VDCTNRY &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p15j64ea6mbwfnn1nadevlvpq33x"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about all DICTIONARY tables. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1fyrk4uzv2ntjn1q386bgmgfe3v"&gt;&lt;/A&gt;ENGINES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0qtie9qilt1yqn1ldcm6h8owlmj"&gt;&lt;/A&gt;VENGINE &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1himtonnm7drrn18uv1oz1d09ko"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about SAS engines. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1xunznodqysm3n1c1wpzikbg3hs"&gt;&lt;/A&gt;EXTFILES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0wws96hhvgk49n1w5fk16jzmebc"&gt;&lt;/A&gt;VEXTFL &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1ama8h7tp3720n1d57tpptond95"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known external files. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1quwaldb8bf12n1sk9s9i5ehs89"&gt;&lt;/A&gt;FILTERS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0b31gmea73jxyn1y0uopb977bko"&gt;&lt;/A&gt;VFILTER &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0wfq2qyrevou4n1hcp4g1ayl29e"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known information map filters. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0fzijd7s7ow5qn1aibvwkwo83jg"&gt;&lt;/A&gt;FORMATS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0n7m9hl3stsbmn150orslq8i28a"&gt;&lt;/A&gt;VFORMAT &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="p090mokgrt9fzpn1vt7rf1e4ivmo"&gt;&lt;/A&gt;VCFORMAT &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1hxt9nxa7ctmin1d7k7g4dhpfl3"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about currently accessible formats and informats. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n14i26c8i2u3wzn1dhl61mvgsq3s"&gt;&lt;/A&gt;FUNCTIONS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1ei3gxie7dd27n128lagjvrtijw"&gt;&lt;/A&gt;VFUNC &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1jyzzlosnflh2n1rjwb9i5yxcsw"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about currently accessible functions. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1dgh4kwsvyxofn11tutitp9rruo"&gt;&lt;/A&gt;GOPTIONS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n089133sgyubixn10zlbft422wgf"&gt;&lt;/A&gt;VGOPT &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="p12jy2f0uyz24yn1ljcul774frq7"&gt;&lt;/A&gt;VALLOPT &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1xzwv09np0c68n1lo299ekju61p"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about currently defined graphics options (SAS/GRAPH &lt;BR /&gt;software). SASHELP.VALLOPT includes SAS system options as well as graphics &lt;BR /&gt;options. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1u5a9xwmyxqc1n1twul7ixk76zt"&gt;&lt;/A&gt;INDEXES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0if6dx2b90wejn1qk5as4nx7653"&gt;&lt;/A&gt;VINDEX &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1v8y231w7l2ayn151a49qeh8q4i"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known indexes. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1d4khwynrencqn11rc3n3qzf53r"&gt;&lt;/A&gt;INFOMAPS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0diud13g1lnljn1g5k329132esm"&gt;&lt;/A&gt;VINFOMP &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0bn0gvdqlshmxn1mlu1b0tj0xbq"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known information maps. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1c7d6r3lkvydhn1owutx1l3h6xg"&gt;&lt;/A&gt;LIBNAMES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n129bukiug7g75n1kv3yy5hgm6t7"&gt;&lt;/A&gt;VLIBNAM &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1gn8ftsueou18n1epg6gjq9kws7"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about currently defined SAS libraries. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0zbhn3w3apr43n1q96e5juh0hps"&gt;&lt;/A&gt;MACROS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p19q7982baazzzn17j5qmxma6mta"&gt;&lt;/A&gt;VMACRO &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0jfekc7d9618wn1reb4nzrth7lr"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about currently defined macro variables. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0vd7dd61jiyf4n0zi62qolzwbrh"&gt;&lt;/A&gt;MEMBERS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0rcv4n3eth1qgn1xx7q2dawpx4f"&gt;&lt;/A&gt;VMEMBER &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="p0zjvw5iy85q0dn10af9gp9hpnk9"&gt;&lt;/A&gt;VSACCES &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="n14rl4hjd5qeoon1s179r3uay7lg"&gt;&lt;/A&gt;VSCATLG &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="n1bca826yicbjan1nu7r3dkbvxpb"&gt;&lt;/A&gt;VSLIB &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="n0hsi8fm7swz1yn177vbk32d4fdj"&gt;&lt;/A&gt;VSTABLE &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="p0oemj5ttfy04gn1ppq1o7n7anoe"&gt;&lt;/A&gt;VSTABVW &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="p066a7a2yrkyb1n15xo6xnwrkx7g"&gt;&lt;/A&gt;VSVIEW &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p16obt55vjyya3n1j44m1veiym1g"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about all objects that are in currently defined SAS libraries. &lt;BR /&gt;SASHELP.VMEMBER contains information for all member types; the other SASHELP &lt;BR /&gt;views are specific to particular member types (such as tables or views). &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1c7qp2kx61gvzn1ceup3ujykcll"&gt;&lt;/A&gt;OPTIONS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p13emkzg64motfn15woh7niv3svj"&gt;&lt;/A&gt;VOPTION &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="paraTable"&gt;&lt;A name="n1bzl1gpulqbgqn12t3ri9stb0bu"&gt;&lt;/A&gt;VALLOPT &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n14nofshffhpx9n18c13ioskgnnp"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about SAS system options. SASHELP.VALLOPT includes graphics options &lt;BR /&gt;as well as SAS system options. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n15uimgh2ndy7dn1atohjogtenzw"&gt;&lt;/A&gt;REFERENTIAL_CONSTRAINTS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1w9dlayt5jl4yn1gwfirwtbjnpb"&gt;&lt;/A&gt;VREFCON &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p088gyne6topbbn18tulhjsuaujr"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about referential constraints. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0lmzc1xinqmkln11ldfarns4r7e"&gt;&lt;/A&gt;REMEMBER &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p072ph7qtajqn1n1ljc00286511x"&gt;&lt;/A&gt;VREMEMB &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1304srr0srn33n1cv8r36yrcv6i"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known remembers. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n08wwqc6mgse6gn1atz2vm4nx014"&gt;&lt;/A&gt;STYLES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p10ez4ta08d5l7n1alpn3f14pvuq"&gt;&lt;/A&gt;VSTYLE &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1x9joqa7xr69bn1mqtf4mqq3hxn"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known ODS styles. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1sngh6antmpakn10lri1rp1epkd"&gt;&lt;/A&gt;TABLE_CONSTRAINTS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p18ge0s7zqjqf4n1t4ip4oiepgb4"&gt;&lt;/A&gt;VTABCON &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0nnz842luwqa7n1gtgmyfcxqdg9"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about integrity constraints in all known tables. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p0obc2y8p2b8idn1eb8vkbmdzcyv"&gt;&lt;/A&gt;TABLES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1isl0228g9o6ln1hglzeonhc9ss"&gt;&lt;/A&gt;VTABLE &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0srpa1qe6qthtn1odov1rr3d24d"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known tables. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1fk8k6sc3u5y7n1j104lbl0vhgx"&gt;&lt;/A&gt;TITLES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1ccpo5wk9nvyhn1muuxjggs4aak"&gt;&lt;/A&gt;VTITLE &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1k77k4fivgjo1n10db6f6eoroym"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about currently defined titles and footnotes. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0xd8yfgojnc9cn1parihyy5y33z"&gt;&lt;/A&gt;VIEWS &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0lx6trunoa8esn10gu4zqsa3815"&gt;&lt;/A&gt;VVIEW &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;" valign="top"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n0u8v3ric0bhh2n0z79rbntb4ca9"&gt;&lt;/A&gt;Contains &lt;BR /&gt;information about known data views. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="text-align: left;"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1pdl2kpvn9kl5n1k68f97fq5ugq"&gt;&lt;/A&gt;VIEW_SOURCES &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="n1jb4b5qlycox5n1ar7d40p1zmui"&gt;&lt;/A&gt;Not available &lt;/DIV&gt;&lt;/TD&gt;&lt;TD style="text-align: left;"&gt;&lt;BR /&gt;&lt;DIV class="paraTableFirst"&gt;&lt;A name="p1uhc0vw1zw423n13ec15i15hv4k"&gt;&lt;/A&gt;Contains a &lt;BR /&gt;list of tables (or other views) referenced by the SQL or DATASTEP view, and a &lt;BR /&gt;count of the number of references. &lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV class="subTopic"&gt;&lt;A name="p0vxkwceihebzkn1rgdsi0r8slgc"&gt;&lt;/A&gt;&lt;BR /&gt;&lt;H2 class="title"&gt;Retrieving Information about DICTIONARY Tables and SASHELP Views &lt;/H2&gt;&lt;BR /&gt;&lt;DIV class="topicContent"&gt;&lt;A name="n1wt0shktzlybtn1w71e2p0yu476"&gt;&lt;/A&gt;&lt;BR /&gt;&lt;DIV class="paragraph"&gt;&lt;A name="n0iuv6ga838jxmn1eb7asrr8ebg4"&gt;&lt;/A&gt;To see how each &lt;BR /&gt;DICTIONARY table is defined, submit a DESCRIBE TABLE statement. This example &lt;BR /&gt;shows the definition of DICTIONARY.TABLES: &lt;/DIV&gt;&lt;BR /&gt;&lt;A name="p1ncbwk8bk782fn1gg3jsxij0dye"&gt;&lt;/A&gt;&lt;PRE class="code"&gt;proc sql; describe table dictionary.tables;&lt;/PRE&gt;&lt;BR /&gt;&lt;DIV class="paragraph"&gt;&lt;A name="p01hbfdhfo35yzn1jaxdlmlivs4q"&gt;&lt;/A&gt;The results are &lt;BR /&gt;written to the SAS log. &lt;/DIV&gt;&lt;BR /&gt;&lt;DIV class="logBlock"&gt;&lt;A name="p120o7sa5axx4kn1908szu5fg7ca"&gt;&lt;/A&gt;&lt;BR /&gt;&lt;DIV class="title"&gt;Definition of DICTIONARY.TABLES&lt;/DIV&gt;&lt;PRE class="jive-pre"&gt;&lt;A name="../@eid"&gt;&lt;/A&gt; NOTE: SQL table DICTIONARY.TABLES was created like:&amp;nbsp; create table DICTIONARY.TABLES ( libname char(8) label='Library Name', memname char(32) label='Member Name', memtype char(8) label='Member Type', dbms_memtype char(32) label='DBMS Member Type', memlabel char(256) label='Data Set Label', typemem char(8) label='Data Set Type', crdate num format=DATETIME informat=DATETIME label='Date Created', modate num format=DATETIME informat=DATETIME label='Date Modified', nobs num label='Number of Physical Observations', obslen num label='Observation Length', nvar num label='Number of Variables', protect char(3) label='Type of Password Protection', compress char(8) label='Compression Routine', encrypt char(8) label='Encryption', npage num label='Number of Pages', filesize num label='Size of File', pcompress num label='Percent Compression', reuse char(3) label='Reuse Space', bufsize num label='Bufsize', delobs num label='Number of Deleted Observations', nlobs num label='Number of Logical Observations', maxvar num label='Longest variable name', maxlabel num label='Longest label', maxgen num label='Maximum number of generations', gen num label='Generation number', attr char(3) label='Data Set Attributes', indxtype char(9) label='Type of Indexes', datarep char(32) label='Data Representation', sortname char(8) label='Name of Collating Sequence', sorttype char(4) label='Sorting Type', sortchar char(8) label='Charset Sorted By', reqvector char(24) format=$HEX48 informat=$HEX48 label='Requirements Vector', datarepname char(170) label='Data Representation Name', encoding char(256) label='Data Encoding', audit char(8) label='Audit Trail Active?', audit_before char(8) label='Audit Before Image?', audit_admin char(8) label='Audit Admin Image?', audit_error char(8) label='Audit Error Image?', audit_data char(8) label='Audit Data Image?', num_character num label='Number of Character Variables', num_numeric num label='Number of Numeric Variables' );&lt;/PRE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;A name="p16tzvbbhtau3in1npgltj5v5ax1"&gt;&lt;/A&gt;Similarly, you can &lt;BR /&gt;use the DESCRIBE VIEW statement in PROC SQL to determine how a SASHELP view is &lt;BR /&gt;defined. Here is an example: &lt;PRE class="codeFragment"&gt;proc sql; describe view sashelp.vtable;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Feb 2015 20:36:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Macro-program-to-pull-out-library-details-from-the-server/m-p/158545#M30971</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-02-11T20:36:45Z</dc:date>
    </item>
  </channel>
</rss>

