<?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 Re: ERROR: Character expression requires a character format in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869494#M343428</link>
    <description>&lt;P&gt;Looks like you have a syntax error using the FORMAT option and you can't apply a numeric date format to a character variable. Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
		create table ucd4 as
		select a.monyear, 
			a.patcounty as county,
			a.year,
			a.count,
			a.tot_mme as mme,
			a.highmme,
			b.county,
			b.year, 
			b.pop
		from ucd3 as a
			left join pop as b
			on a.year = b.year
			and upcase(a.patcounty) = upcase(b.county);
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 13 Apr 2023 00:55:52 GMT</pubDate>
    <dc:creator>SASKiwi</dc:creator>
    <dc:date>2023-04-13T00:55:52Z</dc:date>
    <item>
      <title>ERROR: Character expression requires a character format</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869493#M343427</link>
      <description>&lt;P&gt;Hi, folks-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm getting this error when I try a left join in PROC SQL:&amp;nbsp;&lt;FONT color="#FF0000"&gt;ERROR: Character expression requires a character format. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The solutions for this error involve making sure that the "on" variables in the join are both string variables. They are, but I'm still getting the error.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's the code:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="sas"&gt;proc sql;
		create table ucd4 as
		select a.monyear format yymon., 
			a.patcounty as county,
			a.year,
			a.count,
			a.tot_mme as mme,
			a.highmme,
			b.county,
			b.year, 
			b.pop
		from ucd3 as a
			left join pop as b
			on a.year = b.year
			and upcase(a.patcounty) = upcase(b.county);
quit;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And here's the complete log:&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="sas"&gt;1          ;*';*";*/;quit;run;
2          OPTIONS PAGENO=MIN;
3          %LET _CLIENTTASKLABEL='ucd_cures_indicators';
4          %LET _CLIENTPROCESSFLOWNAME='Process Flow';
5          %LET _CLIENTPROJECTPATH='G:\SAPB\Projects\OD2A\Evaluation\UCD Evaluation\Data\ucd_cures_indicators.egp';
6          %LET _CLIENTPROJECTPATHHOST='MXL1193B73';
7          %LET _CLIENTPROJECTNAME='ucd_cures_indicators.egp';
8          %LET _SASPROGRAMFILE='';
9          %LET _SASPROGRAMFILEHOST='';
10         
11         ODS _ALL_ CLOSE;
12         OPTIONS DEV=PNG;
13         GOPTIONS XPIXELS=0 YPIXELS=0;
14         FILENAME EGSR TEMP;
15         ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR
16             STYLE=HtmlBlue
17             STYLESHEET=(URL="file:///C:/Program%20Files/SASHome/SASEnterpriseGuide/7.1/Styles/HtmlBlue.css")
18             NOGTITLE
19             NOGFOOTNOTE
20             GPATH=&amp;amp;sasworklocation
21             ENCODING=UTF8
22             options(rolap="on")
23         ;
NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
24         
25         GOPTIONS ACCESSIBLE;


26         proc sql;
27         		create table ucd4 as
28         		select a.monyear format yymon.,
29         			a.patcounty,
30         			a.year,
31         			a.count,
32         			a.tot_mme as mme,
33         			a.highmme,
34         			b.county,
35         			b.year,
36         			b.pop
37         		from ucd3 as a
38         			left join pop as b
39         			on a.year = b.year
40         			and upcase(a.patcounty) = upcase(b.county);
ERROR: Character expression requires a character format.
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
41         quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      
42         
43         GOPTIONS NOACCESSIBLE;
44         %LET _CLIENTTASKLABEL=;
45         %LET _CLIENTPROCESSFLOWNAME=;
46         %LET _CLIENTPROJECTPATH=;
47         %LET _CLIENTPROJECTPATHHOST=;
48         %LET _CLIENTPROJECTNAME=;
49         %LET _SASPROGRAMFILE=;
50         %LET _SASPROGRAMFILEHOST=;
51         
52         ;*';*";*/;quit;run;
53         ODS _ALL_ CLOSE;
54         
55         
56         QUIT; RUN;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did proc contents for both tables "a" (pop) and "b" (ucd3):&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;Alphabetic List of Variables and Attributes# Variable Type Len Format &lt;TABLE cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;county&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;25&lt;/TD&gt;&lt;TD&gt;$25.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;pop&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;BEST12.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;year&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;4.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;DIV&gt;&lt;BR /&gt;Alphabetic List of Variables and Attributes# Variable Type Len Format Informat &lt;TABLE cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;count&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;BEST12.&lt;/TD&gt;&lt;TD&gt;BEST32.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;YYMMDD10.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;highmme&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;BEST12.&lt;/TD&gt;&lt;TD&gt;BEST32.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;monyear&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;$6.&lt;/TD&gt;&lt;TD&gt;$6.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;patcounty&lt;/TD&gt;&lt;TD&gt;Char&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;TD&gt;$25.&lt;/TD&gt;&lt;TD&gt;$12.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;tot_mme&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;BEST12.&lt;/TD&gt;&lt;TD&gt;BEST32.&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;year&lt;/TD&gt;&lt;TD&gt;Num&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;4.&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Any help would be greatly appreciated!&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Best,&lt;/DIV&gt;&lt;DIV&gt;David&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2023 00:31:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869493#M343427</guid>
      <dc:creator>dbcrow</dc:creator>
      <dc:date>2023-04-13T00:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Character expression requires a character format</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869494#M343428</link>
      <description>&lt;P&gt;Looks like you have a syntax error using the FORMAT option and you can't apply a numeric date format to a character variable. Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql;
		create table ucd4 as
		select a.monyear, 
			a.patcounty as county,
			a.year,
			a.count,
			a.tot_mme as mme,
			a.highmme,
			b.county,
			b.year, 
			b.pop
		from ucd3 as a
			left join pop as b
			on a.year = b.year
			and upcase(a.patcounty) = upcase(b.county);
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2023 00:55:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869494#M343428</guid>
      <dc:creator>SASKiwi</dc:creator>
      <dc:date>2023-04-13T00:55:52Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: Character expression requires a character format</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869498#M343432</link>
      <description>&lt;P&gt;Hi, SASKiwi-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for responding to another of my inquiries. It's almost like you're my personal SAS assistant! &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Worked like a charm!&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm wondering why SAS throws that error message. It makes me think that the problem is the join variables rather than the format.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At any rate, I tender my heartfelt gratitude!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2023 01:00:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-Character-expression-requires-a-character-format/m-p/869498#M343432</guid>
      <dc:creator>dbcrow</dc:creator>
      <dc:date>2023-04-13T01:00:32Z</dc:date>
    </item>
  </channel>
</rss>

