<?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 Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42076#M8630</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You do not need the concatenation operator.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just code %scan(&amp;amp;m,1)&amp;amp;n .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;127&amp;nbsp; %let m=test1 test2;&lt;/P&gt;&lt;P&gt;128&amp;nbsp; %let n=_2012;&lt;/P&gt;&lt;P&gt;129&lt;/P&gt;&lt;P&gt;130&lt;/P&gt;&lt;P&gt;131&amp;nbsp; data have;&lt;/P&gt;&lt;P&gt;132&amp;nbsp; %scan(&amp;amp;m,1)=1;&lt;/P&gt;&lt;P&gt;133&amp;nbsp; %scan(&amp;amp;m,2)=2;&lt;/P&gt;&lt;P&gt;134&amp;nbsp; %scan(&amp;amp;m,1)&amp;amp;n=999;&lt;/P&gt;&lt;P&gt;135&amp;nbsp;&amp;nbsp; put (_all_) (=);&lt;/P&gt;&lt;P&gt;136&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;test1=1 test2=2 test1_2012=999&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 31 Jan 2012 14:46:54 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2012-01-31T14:46:54Z</dc:date>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42068#M8622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;H2 style="color: #7ba428; background-color: #ffffff; font-family: 'Titillium Maps', Arial; font-weight: normal; font-size: 1.4em; margin-bottom: 10px; padding-top: 5px; padding-bottom: 5px;"&gt;&lt;SPAN style="font-size: 15px; font-family: Verdana;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN style="font-family: Verdana; font-size: 15px; line-height: 21px; background-color: #ffffff;"&gt;Very often it is useful to have a list of all the variables you have in a certain table. You don’t always want to type them out yourself (hard coding) but instead want an automatically generated list based on what is present in the table.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN style="font-family: Verdana; font-size: 15px; line-height: 21px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="font-family: Verdana; font-size: 11pt;"&gt;Think about a regression. You can either type all regressor variables yourself or you load a list into a macro variable and then use that macro variable in the regression equation.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="font-family: Verdana; font-size: 11pt;"&gt;Here is an example of how to make this list by DATA step (though PROC SQL is often easier and preferred over the DATA STEP when it comes to loading values into macro variables).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-GB" style="color: navy; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;DATA&lt;/SPAN&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;SET&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; SASHELP.VCOLUMN&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; text-indent: 35.4pt; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;(&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;WHERE&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;=(LIBNAME = &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: purple; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;"libraryoftable"&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; AND MEMNAME = &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: purple; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;"tablename"&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;CALL&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; SYMPUT(COMPRESS(&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: purple; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;'allvariables'&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;||_N_),name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;CALL&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; SYMPUT(&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: purple; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;'nbr_of_variables'&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;),_N_);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;STRONG style="color: navy; font-size: 11pt; background-color: white; font-family: Verdana;"&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;SASHELP.VCOLUMN is a metadata table. It contains data &lt;STRONG&gt;about&lt;/STRONG&gt; data. In this case it contains the column-names for every table you have. In order to get the variables you want you will need to select the correct table and this is done by putting a restriction on both&amp;nbsp; the library and table name (often just table name is enough but if you are in a habit of reusing the same table names over different libraries, you are best to select on both). In the example this is done with the WHERE clause. The MEMNAME (member name) is a variable in the VCOLUMN metadata table which contains all the table names.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;Here we upload the contends of the name variable to macro variables by using &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;CALL&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; SYMPUT. A combination of _N_ and a chosen macrovariable name (here &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: purple; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;'allvariables') &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; font-size: 11pt;"&gt;will make the datastep construct our &lt;STRONG&gt;macro variable array&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; font-size: 11pt;"&gt;We also keep the number of variables in a macro variable called &lt;SPAN style="color: purple;"&gt;'nbr_of_variables' &lt;/SPAN&gt;so we can know at what number the array ends.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;In order to check whether your macro variables are created correctly you can use &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%PUT. &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; font-size: 11pt;"&gt;This will make SAS put the contents of the variables in the log.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%PUT&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; &amp;amp;allvariables1 &amp;amp;allvariables2 &amp;amp;allvariables3;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%PUT&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; &amp;amp;nbr_of_variables;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;Calling the first variable of our array is done by resolving &amp;amp;allvariables1. Calling the last one however is a bit more tricky since it requires us to know how many of these macro variables were actually created. Luckily we kept that information in the macro variable &amp;amp;nbr_of_variables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;In order to get the last macro variable of our array we simply combine the two macro names as so (in this article we do not explain how macro variables resolve, you can find more on this in our library or by following the MACRO courses).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%PUT&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; &amp;amp;&amp;amp;allvariables&amp;amp;nbr_of_variables;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;Now you are ready to resolve these macro variables anywhere by building a simple macro loop;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-GB" style="color: navy; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%MACRO&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; &lt;STRONG&gt;&lt;EM&gt;printmacroarray&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%DO&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; i = &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-GB" style="color: teal; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;1&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%TO&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; &amp;amp;nbr_of_variables;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%PUT&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; &amp;amp;&amp;amp;allvariables&amp;amp;i;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="color: blue; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%END&lt;/SPAN&gt;;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-GB" style="color: navy; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%MEND&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-GB" style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt; printmacroarray;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;SPAN style="color: black; background-color: white; font-family: Verdana; font-size: 11pt;"&gt;%&lt;STRONG&gt;&lt;EM&gt;printmacroarray&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 10:54:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42068#M8622</guid>
      <dc:creator>BIGuidance</dc:creator>
      <dc:date>2012-01-31T10:54:27Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42069#M8623</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe sashelp.vcolumn is a runtime view so using proc contents is a much lighter approach, especially when you have a large database with hundreds or even thousands of tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;15 DATA _NULL_;&lt;/P&gt;&lt;P&gt;16 &lt;/P&gt;&lt;P&gt;17 SET SASHELP.VCOLUMN&lt;/P&gt;&lt;P&gt;18 &lt;/P&gt;&lt;P&gt;19 (WHERE=(LIBNAME = "DDS" AND MEMNAME = "FINANCIAL_ACCOUNT"));&lt;/P&gt;&lt;P&gt;20 &lt;/P&gt;&lt;P&gt;21 CALL SYMPUT(COMPRESS('allvariables'||_N_),name);&lt;/P&gt;&lt;P&gt;22 &lt;/P&gt;&lt;P&gt;23 CALL SYMPUT('nbr_of_variables',_N_);&lt;/P&gt;&lt;P&gt;24 &lt;/P&gt;&lt;P&gt;25 RUN;&lt;/P&gt;&lt;P&gt;NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).&lt;/P&gt;&lt;P&gt;21:48 23:42 &lt;/P&gt;&lt;P&gt;NOTE: The query as specified involves ordering by an item that doesn't appear in its SELECT clause.&lt;/P&gt;&lt;P&gt;NOTE: There were 129 observations read from the data set SASHELP.VCOLUMN.&lt;/P&gt;&lt;P&gt;WHERE (LIBNAME='DDS') and (MEMNAME='FINANCIAL_ACCOUNT');&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;real time 45.30 seconds&lt;/P&gt;&lt;P&gt;cpu time 5.48 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;26 &lt;/P&gt;&lt;P&gt;27 PROC CONTENTS DATA=DDS.FINANCIAL_ACCOUNT OUT=CONTENTS (KEEP=NAME);&lt;/P&gt;&lt;P&gt;28 RUN;&lt;/P&gt;&lt;P&gt;NOTE: The data set WORK.CONTENTS has 129 observations and 1 variables.&lt;/P&gt;&lt;P&gt;NOTE: Compressing data set WORK.CONTENTS increased size by 100.00 percent. &lt;/P&gt;&lt;P&gt;Compressed is 2 pages; un-compressed would require 1 pages.&lt;/P&gt;&lt;P&gt;NOTE: PROCEDURE CONTENTS used (Total process time):&lt;/P&gt;&lt;P&gt;real time 0.30 seconds&lt;/P&gt;&lt;P&gt;cpu time 0.14 seconds&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;29 &lt;/P&gt;&lt;P&gt;30 DATA _NULL_;&lt;/P&gt;&lt;P&gt;31 SET CONTENTS;&lt;/P&gt;&lt;P&gt;3 The SAS System 09:52 Tuesday, January 31, 2012&lt;/P&gt;&lt;P&gt;32 CALL SYMPUT(COMPRESS('allvariables'||_N_),name);&lt;/P&gt;&lt;P&gt;33 CALL SYMPUT('nbr_of_variables',_N_);&lt;/P&gt;&lt;P&gt;34 &lt;/P&gt;&lt;P&gt;35 RUN;&lt;/P&gt;&lt;P&gt;NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).&lt;/P&gt;&lt;P&gt;32:39 33:34 &lt;/P&gt;&lt;P&gt;NOTE: There were 129 observations read from the data set WORK.CONTENTS.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;real time 0.00 seconds&lt;/P&gt;&lt;P&gt;cpu time 0.02 seconds&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 13:07:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42069#M8623</guid>
      <dc:creator>PAzevedo</dc:creator>
      <dc:date>2012-01-31T13:07:10Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42070#M8624</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nice alternative indeed &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 13:50:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42070#M8624</guid>
      <dc:creator>BIGuidance</dc:creator>
      <dc:date>2012-01-31T13:50:19Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42071#M8625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hi,&lt;/P&gt;&lt;P&gt;I think the libname and table name in your code have to be capital letters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: navy; font-size: 11pt;"&gt;DATA&lt;/SPAN&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: blue; font-size: 11pt;"&gt;SET&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt; SASHELP.VCOLUMN&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; text-indent: 35.4pt; margin-bottom: 8px;"&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt;(&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: blue; font-size: 11pt;"&gt;WHERE&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt;=(LIBNAME = &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: purple; font-size: 11pt;"&gt;"LIBRARYOFTABLE"&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt; AND MEMNAME = &lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: purple; font-size: 11pt;"&gt;"TABLENAME"&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt;));&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: blue; font-size: 11pt;"&gt;CALL&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt; SYMPUTx(cats('&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: purple; font-size: 11pt;"&gt;allvariables',&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt;_N_),name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: blue; font-size: 11pt;"&gt;CALL&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt; SYMPUTx(&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: purple; font-size: 11pt;"&gt;'nbr_of_variables'&lt;/SPAN&gt;&lt;SPAN lang="EN-GB" style="background-color: white; font-family: Verdana; color: black; font-size: 11pt;"&gt;,_N_);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #ffffff; margin-top: 8px; margin-bottom: 8px;"&gt;&lt;STRONG style="background-color: white; font-family: Verdana; color: navy; font-size: 11pt;"&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:00:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42071#M8625</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-01-31T14:00:26Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42072#M8626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I apologize if this is a bit off-topic. There are numerous ways from table variable names to macro variable values, such as dictionary.column (SQL), sashelp.vcolumn (datastep), proc content, even array-vname(). However, are there any&amp;nbsp; approaches (preferablely non-macro)&amp;nbsp; to do the reverse conversion? eg. converting macro variable values back to table variable names?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:16:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42072#M8626</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-01-31T14:16:16Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42073#M8627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai.kuo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure what you are asking.&amp;nbsp; If you have a list of space-separated variables names, and they are all either numeric or have already had informats assigned, you can always use the macro variable for text substitution.&amp;nbsp; e.g.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; input &amp;amp;yourMacroVariable.;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; etc.&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:24:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42073#M8627</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-01-31T14:24:28Z</dc:date>
    </item>
    <item>
      <title>Re: Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42074#M8628</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Code generation.&amp;nbsp; I perfer to use data step with PUT statement to generate code as it is much easier to debug.&lt;/P&gt;&lt;P&gt;For example you could generate ATTRIB statements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;filename code temp;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&amp;nbsp; file code ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set contents ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; put 'attrib ' name 'length=' @;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if type=2 then put '$'@;&lt;/P&gt;&lt;P&gt;&amp;nbsp; put length @;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if label ne ' ' then put "label='" label +(-1) "'" @;&lt;/P&gt;&lt;P&gt;&amp;nbsp; put ';';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data new ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; %inc code;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:28:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42074#M8628</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-01-31T14:28:02Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42075#M8629</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Art.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your answer makes me realize that I have asked a wrong question. Rather, it is more of macro question. To simply my scenario, here is an example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let m=test1 test2;&lt;/P&gt;&lt;P&gt;%let n=_2012;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;%scan(&amp;amp;m,1)=1&lt;/P&gt;&lt;P&gt;%scan(&amp;amp;m,2)=2;&lt;/P&gt;&lt;P&gt;%scan(&amp;amp;m,1)||&amp;amp;n=999;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have trouble to make a concatenated variable out of macro variable values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp; in advance,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:41:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42075#M8629</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-01-31T14:41:05Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42076#M8630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You do not need the concatenation operator.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just code %scan(&amp;amp;m,1)&amp;amp;n .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;127&amp;nbsp; %let m=test1 test2;&lt;/P&gt;&lt;P&gt;128&amp;nbsp; %let n=_2012;&lt;/P&gt;&lt;P&gt;129&lt;/P&gt;&lt;P&gt;130&lt;/P&gt;&lt;P&gt;131&amp;nbsp; data have;&lt;/P&gt;&lt;P&gt;132&amp;nbsp; %scan(&amp;amp;m,1)=1;&lt;/P&gt;&lt;P&gt;133&amp;nbsp; %scan(&amp;amp;m,2)=2;&lt;/P&gt;&lt;P&gt;134&amp;nbsp; %scan(&amp;amp;m,1)&amp;amp;n=999;&lt;/P&gt;&lt;P&gt;135&amp;nbsp;&amp;nbsp; put (_all_) (=);&lt;/P&gt;&lt;P&gt;136&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;test1=1 test2=2 test1_2012=999&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:46:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42076#M8630</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-01-31T14:46:54Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42077#M8631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;aha! Many Many Thanks, Tom!!! I knew something wrong with my way of thinking upon macro.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:51:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42077#M8631</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-01-31T14:51:06Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42078#M8632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;PAzevedo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what follows is a demo, showing SASHELP.VCOLUMN being read quickly (even on this 4-year-old laptop)&lt;/P&gt;&lt;P&gt;What helps speed up the pass, is the process = PROC SQL.&lt;/P&gt;&lt;P&gt;SASHELP.VCOLUMN is an SQL VIEW which SQL understands, a whole lot more than a DATA STEP does.&lt;/P&gt;&lt;P&gt;With this understanding, SQL can pass through the WHERE clause to the underlying DICTIONARY.COLUMNS which is "an object that DATA STEP does not understand". &lt;/P&gt;&lt;P&gt;Whatever it is that dynamically fills DICTIONARY.COLUMNS it is able to use the WHERE filter passed by PROC SQL to reduce the metadata being examined to just the column information required. So it has the possibility of being even faster than PROC CONTENTS (which also loads table metadata information). &lt;/P&gt;&lt;P&gt;It is not SASHELP.VCOLUMN which is "slow" but rather, the DATA STEP which has to &lt;STRONG&gt;load all metadata, of all columns, in all tables, in all libraries&lt;/STRONG&gt; to pass the "table" to the WHERE condition. &lt;/P&gt;&lt;P&gt;Here is the SASlog demonstrating the speed that PROC SQL reads SASHELP.VCOLUMN for the table MAPS.ASIA&lt;/P&gt;&lt;P&gt;The comparison was run in EG4.2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA STEP&lt;/P&gt;&lt;P&gt;2.03secs for data step doing everything &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or PROC SQL and DATA STEP&lt;/P&gt;&lt;P&gt;.02 secs in PROC SQL (extract the metadata) followed by &lt;/P&gt;&lt;P&gt;.00 secs in the DATA STEP (reading metadata extracted by PROC SQL)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;19 %let lib= MAPS;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;20 %let mem= ASIA;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;21 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;22 proc sql;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;23 create table cols_&amp;amp;mem as select * from sashelp.vcolumn&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;24 where LIBNAME = "&amp;amp;LIB" AND MEMNAME = "&amp;amp;MEM"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;25 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: Table WORK.COLS_ASIA created, with 8 rows and 18 columns.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;26 quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;real time 0.02 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;cpu time 0.03 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;27 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;28 proc contents data= &amp;amp;lib..&amp;amp;mem noprint out= conts_&amp;amp;mem;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;29 run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: The data set WORK.CONTS_ASIA has 8 observations and 40 variables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: PROCEDURE CONTENTS used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;real time 0.03 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;cpu time 0.03 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;30 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;31 DATA _null_ ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;32 SET SASHELP.VCOLUMN&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;33 (WHERE=(LIBNAME = "&amp;amp;LIB" AND MEMNAME = "&amp;amp;MEM"));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;34 CALL SYMPUTX(cats('allvariables',_N_),name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;35 CALL SYMPUTX( 'nbr_of_variables',_N_);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;36 RUN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: There were 8 observations read from the data set SASHELP.VCOLUMN.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;WHERE (LIBNAME='MAPS') and (MEMNAME='ASIA');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;real time 2.03 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;cpu time 0.67 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;37 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;38 data _null_ ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;39 SET cols_&amp;amp;mem;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;40 CALL SYMPUTX(cats('allvariable2',_N_),name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;41 CALL SYMPUTX( 'nbr_of_variable2',_N_);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;42 RUN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: There were 8 observations read from the data set WORK.COLS_ASIA.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;real time 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;cpu time 0.01 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;43 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;44 data _null_ ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;45 SET conts_&amp;amp;mem;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;46 CALL SYMPUTX(cats('allvariable3',_N_),name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;47 CALL SYMPUTX( 'nbr_of_variable3',_N_);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 8pt;"&gt;48 RUN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: There were 8 observations read from the data set WORK.CONTS_ASIA.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;real time 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt;cpu time 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Courier New'; font-size: 8pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The log also provides the "real" runtimes for using PROC CONTENTS and DATA STEP&lt;/P&gt;&lt;P&gt;.03 secs in PROC SQL (extract the metadata) followed by &lt;/P&gt;&lt;P&gt;.00 secs in the DATA STEP (reading metadata extracted by PROC CONTENTS)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The more libraries that are defined, or more tables that are present within those libraries, the more a DATA STEP has to read from SASHELP.VCOLUMN. &lt;/P&gt;&lt;P&gt;My setup has little more than base SAS and SAS/GRAPH. Your's might have more to read.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;peterC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 17:37:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42078#M8632</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2012-01-31T17:37:16Z</dc:date>
    </item>
    <item>
      <title>Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42079#M8633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Always learning.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thks Peter.C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PA.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 17:49:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42079#M8633</guid>
      <dc:creator>PAzevedo</dc:creator>
      <dc:date>2012-01-31T17:49:34Z</dc:date>
    </item>
    <item>
      <title>Re: Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42080#M8634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is a timed example using a library connected to an oracle database containing hundreds of tables:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;﻿﻿&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libname ort oracle user=user pass=pass path=path;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: Libref ORT was successfully assigned as follows: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Engine:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ORACLE &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Physical Name: path&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name into :allvariables1 separated by ' '&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from sashelp.vcolumn&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname = 'ORT'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and memname= 'TABLE';&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let nbr_of_variables1=&amp;amp;sqlobs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.92 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.01 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc sql noprint;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;26&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select name into :allvariables2 separated by ' '&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from dictionary.columns&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where libname = 'ORT'&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;29&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and memname= 'TABLE';&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %let nbr_of_variables2=&amp;amp;sqlobs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.80 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;33&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc contents data=ort.table noprint out=contents; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: The data set WORK.CONTENTS has 24 observations and 40 variables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: PROCEDURE CONTENTS used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;34&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data _null_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length slurp $32000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;37&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(done);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set contents end=done;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;39&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slurp=catx(' ',of slurp name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i+1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;41&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('allvariables3',slurp);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;43&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symputx('nbr_of_variables3',i);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;44&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: There were 24 observations read from the data set WORK.CONTENTS.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;An additional example showing that sashelp.vcolumn can be accessed quickly…&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;dictionary.columns is typically faster since it is avoiding the extra view facility, however the difference is often negligible.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;17&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;proc sql noprint;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;18&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;select name into :allvariables1 separated by ' '&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;19&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;from sashelp.vcolumn&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;20&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where libname = 'MAPS'&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;21&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;and memname= 'ASIA';&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;22&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;%let nbr_of_variables1=&amp;amp;sqlobs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;23&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;real time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.04 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;cpu time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.01 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style=": ; Courier New&amp;amp;quot: ; color: green; background: white; font-size: 10pt; mso-spacerun: yes; font-family: &amp;amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;24&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;25&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;proc sql noprint;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;26&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;select name into :allvariables2 separated by ' '&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;27&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;from dictionary.columns&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;28&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;where libname = 'MAPS'&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;29&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;and memname= 'ASIA';&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;30&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;%let nbr_of_variables2=&amp;amp;sqlobs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;31&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;NOTE: PROCEDURE SQL used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;real time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;cpu time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style=": ; Courier New&amp;amp;quot: ; color: green; background: white; font-size: 10pt; mso-spacerun: yes; font-family: &amp;amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;32&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;33&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;proc contents data=maps.asia noprint out=contents; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;NOTE: The data set WORK.CONTENTS has 8 observations and 40 variables.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;NOTE: PROCEDURE CONTENTS used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;real time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;cpu time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style=": ; Courier New&amp;amp;quot: ; color: green; background: white; font-size: 10pt; mso-spacerun: yes; font-family: &amp;amp;quot;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;34&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;35&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;data _null_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;36&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;length slurp $32000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;37&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;do until(done);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;38&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;set contents end=done;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;39&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;slurp=catx(' ',of slurp name);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;40&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;i+1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;41&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;42&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;call symputx('allvariables3',slurp);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;43&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;call symputx('nbr_of_variables3',i);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: black; font-size: 10pt;"&gt;44&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;NOTE: There were 8 observations read from the data set WORK.CONTENTS.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;NOTE: DATA statement used (Total process time):&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;SPAN style="font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;real time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.00 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;SPAN style="line-height: 115%; font-family: &amp;amp;quot;Courier New&amp;amp;quot;; background: white; color: green; font-size: 10pt;"&gt;&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;cpu time&lt;SPAN style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;0.01 seconds&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV class="mcePaste" id="_mcePaste" style="position: absolute; width: 1px; height: 1px; overflow: hidden; top: 0px; left: -10000px;"&gt;﻿&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 19:40:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42080#M8634</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-01-31T19:40:37Z</dc:date>
    </item>
    <item>
      <title>Re: Reduce hard coding by using the VCOLUMN table in SASHELP to get a list of your variables into a macro variable array.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42081#M8635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; color: #333333; font-family: 'Arial','sans-serif';"&gt;I'm glad you said that Tom as I feel the same, especially if the bulk of the data is already in a SAS data set.&amp;nbsp; And you can make it look nice with indentation and the rest and even more importantly SAS can correctly associate errors with line numbers unlike with MPRINT.&amp;nbsp; %INC was all we had back in the day, way back.&amp;nbsp; Macro language + %INC "cat’s meow" &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; color: #333333; font-family: 'Arial','sans-serif';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; color: #333333; font-family: 'Arial','sans-serif';"&gt;Many times as in this example LABEL and LENGTH can be printed with LIST put making the program a bit more concise.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17427&amp;nbsp; filename code temp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17428&amp;nbsp; data _null_;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17429&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *file code;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17430&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set contents;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17431&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put +3 'Attrib ' name @;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17432&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select(type);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17433&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when(1) put length= @;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17434&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when(2) put length=dollar8. @;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17435&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17436&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not missing(label) then put label=:quote258. @;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17437&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; put ';';&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;17438&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib AgeAtDeath LENGTH=8 LABEL="Age at Death" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib AgeAtStart LENGTH=8 LABEL="Age at Start" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib AgeCHDdiag LENGTH=8 LABEL="Age CHD Diagnosed" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib BP_Status LENGTH=$7 LABEL="Blood Pressure Status" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Chol_Status LENGTH=$10 LABEL="Cholesterol Status" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Cholesterol LENGTH=8 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib DeathCause LENGTH=$26 LABEL="Cause of Death" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Diastolic LENGTH=8 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Height LENGTH=8 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib MRW LENGTH=8 LABEL="Metropolitan Relative Weight" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Sex LENGTH=$6 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Smoking LENGTH=8 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Smoking_Status LENGTH=$17 LABEL="Smoking Status" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Status LENGTH=$5 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Systolic LENGTH=8 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Weight LENGTH=8 ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;&amp;nbsp;&amp;nbsp; Attrib Weight_Status LENGTH=$11 LABEL="Weight Status" ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 8pt; font-family: 'SAS Monospace';"&gt;NOTE: There were 17 observations read from the data set WORK.CONTENTS.&lt;/SPAN&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jan 2012 20:58:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Reduce-hard-coding-by-using-the-VCOLUMN-table-in-SASHELP-to-get/m-p/42081#M8635</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-01-31T20:58:06Z</dc:date>
    </item>
  </channel>
</rss>

