<?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: All positional parameters must precede keyword parameters. in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609939#M177592</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%Load_Params(CELL_PACKAGE_SK=66387,66388);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;A comma here indicates that this is the end of the parameter CELL_PACKAGE_SK and value 66387 is assigned to macro variable &amp;amp;CELL_PACKAGE_SK. Then 66388 does not make any sense in this context, because your macro has not defined another macro variable that 66388 could be assigned to.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you get rid of the comma and use a space, then you don't get this error, because the comma has a special meaning. Of course, then you have to modify the rest of the macro which is looking for a comma.&lt;/P&gt;</description>
    <pubDate>Fri, 06 Dec 2019 13:09:09 GMT</pubDate>
    <dc:creator>PaigeMiller</dc:creator>
    <dc:date>2019-12-06T13:09:09Z</dc:date>
    <item>
      <title>ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609930#M177585</link>
      <description>&lt;P&gt;Hello friends&lt;BR /&gt;Please help with the solution of the problem associated with the output of the parameter in the code.&lt;BR /&gt;The code transfers several CELL _PACKAGE_SKs to an Oracle table. But an error occurs during execution&lt;BR /&gt;ERROR: All positional parameters must precede keyword parameters&lt;/P&gt;&lt;P&gt;We found that the CELL _PACKAGE_SK parameter is passed to Oracle as a list, but how to pass as a single line.&lt;/P&gt;&lt;P&gt;I would be very grateful for any help in the decision.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro Load_Params(CELL_PACKAGE_SK=);
%macro dummy; %mend dummy;

%DO i=1 %TO %eval(%sysfunc(countc(&amp;amp;CELL_PACKAGE_SK.,",")) + 1);
            %let STR=%scan(&amp;amp;CELL_PACKAGE_SK.,&amp;amp;i,",");

            proc sql noprint;
            connect to oracle (AuthDomain="Oracle_CI_COMMON_Auth" PATH="@hostname.ru:1111/CRM");
                        execute 
                        (
begin exchange.pck_params.pr_params_sto_load(&amp;amp;STR.); end;
                        )
                        by oracle;
                        disconnect from oracle;
            quit;

%END;

%mend;
%Load_Params(CELL_PACKAGE_SK=66387,66388);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 600px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/34503iC62E8274BC06EB89/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 12:25:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609930#M177585</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-06T12:25:07Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609933#M177587</link>
      <description>You supply two parameters to the macro (delimited by the comma), but you only defined one.</description>
      <pubDate>Fri, 06 Dec 2019 12:44:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609933#M177587</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-12-06T12:44:10Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609935#M177589</link>
      <description>&lt;P&gt;Tell me, please, where do you need to fix it? i don't get it&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 12:57:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609935#M177589</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-06T12:57:23Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609938#M177591</link>
      <description>&lt;P&gt;The comma is interpreted as separating two arguments "a=1" and "2" to the macro call.&lt;/P&gt;
&lt;P&gt;You can&amp;nbsp; use a quote function to avoid this or chose another separator (e.g. space).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro mac(a=);
%put &amp;amp;=a.;
%mend;

%mac(a=1,2) /* two parameters =&amp;gt; boom! */
%mac(a=%quote(1,2)) /* one parameter */&lt;BR /&gt;%mac(a=1 2) /* two parameter */
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:09:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609938#M177591</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2019-12-06T13:09:34Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609939#M177592</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%Load_Params(CELL_PACKAGE_SK=66387,66388);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;A comma here indicates that this is the end of the parameter CELL_PACKAGE_SK and value 66387 is assigned to macro variable &amp;amp;CELL_PACKAGE_SK. Then 66388 does not make any sense in this context, because your macro has not defined another macro variable that 66388 could be assigned to.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you get rid of the comma and use a space, then you don't get this error, because the comma has a special meaning. Of course, then you have to modify the rest of the macro which is looking for a comma.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:09:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609939#M177592</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-12-06T13:09:09Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609940#M177593</link>
      <description>&lt;P&gt;I considered the option of replacing the separator in place of the comma put the underscore. But this method does not work in Oracle. Oracle most often uses comma delimiter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your interest&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:10:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609940#M177593</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-06T13:10:52Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609945#M177594</link>
      <description>&lt;P&gt;It really helps, but the problem arises already at the Oracle level, the database understands nothing but a comma separator. Therefore, I turned here for help&lt;/P&gt;&lt;P&gt;thanks for the advice&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:17:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609945#M177594</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-06T13:17:27Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609946#M177595</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/300646"&gt;@DRVAS&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;I considered the option of replacing the separator in place of the comma put the underscore. But this method does not work in Oracle. Oracle most often uses comma delimiter.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I'm not following this. Your code sent to ORACLE by this macro does not have a comma:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;begin &lt;SPAN class="token number"&gt;ex&lt;/SPAN&gt;change&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;pck_params&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;pr_params_sto_load&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;STR&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; end&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;there is no comma here&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:21:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609946#M177595</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-12-06T13:21:44Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609947#M177596</link>
      <description>&lt;P&gt;If you want to pass a comma separated list to your macro and use it as is you can use the %quote function&lt;/P&gt;
&lt;P&gt;in the macro call to avoid interpreting the comma as an argument separator.&lt;/P&gt;
&lt;P&gt;See the second example in my previous answer.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:18:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609947#M177596</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2019-12-06T13:18:34Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609951#M177599</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/30622"&gt;@gamotte&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;If you want to pass a comma separated list to your macro and use it as is you can use the %quote function&lt;/P&gt;
&lt;P&gt;in the macro call to avoid interpreting the comma as an argument separator.&lt;/P&gt;
&lt;P&gt;See the second example in my previous answer.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I think this would work if a comma separated list is really needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%Load_Params(CELL_PACKAGE_SK=66387%str(,)66388);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;But as I said above, the code sent to ORACLE doesn't contain a comma.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 13:28:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609951#M177599</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-12-06T13:28:08Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609971#M177610</link>
      <description>&lt;P&gt;Take a look at this approach.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro load_params(cell_package_sk=);

%put param passed in = &amp;amp;cell_package_sk.;

*removing parentheses..;
%let rm_parens = %sysfunc(compress(&amp;amp;cell_package_sk.,"()"));
%put string after removing parentheses = &amp;amp;rm_parens.;

*number of commas;
%let num_commas = %qsysfunc(countc(%superq(rm_parens),%str(,)));
%put number of commas (tokens = num_commas+1) = &amp;amp;num_commas.;

*loop over tokens;
%do i=1 %to &amp;amp;num_commas.+1;
	%let token = %qscan(%superq(rm_parens),&amp;amp;i.,%str(,));
	%put current token (&amp;amp;i.) = &amp;amp;token.;

	*----your code here---;
%end;
%mend;
%let input = (66387,66388);
%load_params(cell_package_sk=&amp;amp;input);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Realistically: If you're eventually parsing out the comma-delimited list and throwing that into your oracle statement, you shouldn't go through the trouble of using a comma-delimited list to begin with.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;-unison&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 14:52:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609971#M177610</guid>
      <dc:creator>unison</dc:creator>
      <dc:date>2019-12-06T14:52:27Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609984#M177618</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/300646"&gt;@DRVAS&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;It really helps, but the problem arises already at the Oracle level, the database understands nothing but a comma separator. Therefore, I turned here for help&lt;/P&gt;
&lt;P&gt;thanks for the advice&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Personally I prefer to use space delimited list. Or if space is in the actual data then some other character, like | or ^ or ~.&lt;/P&gt;
&lt;P&gt;Then if you need to convert them into commas to pass to something , usually SQL, that needs commas, you can always convert them in the macro.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro mymac(mylist);
%local mylistc;
%let mylistc=%sysfunc(translate(&amp;amp;mylist,%str(,),%str( )));
....
from connection to oracle 
( .... x in (&amp;amp;mylistc) ....);
...
%mend mymac;

%mymac(mylist=1 2 3 4 5);&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 06 Dec 2019 15:24:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609984#M177618</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-12-06T15:24:28Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609997#M177622</link>
      <description>&lt;P&gt;Generate the code that makes this work &lt;STRONG&gt;without any macro variables or macro calls.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Once you have that working try the suggestions provided with your macro call.&lt;/P&gt;
&lt;P&gt;Set OPTIONS MPRINT prior to running the macro.&lt;/P&gt;
&lt;P&gt;Compare the results of the MPRINT output with the code that you wrote that worked.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Dec 2019 15:48:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/609997#M177622</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-12-06T15:48:31Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612053#M178510</link>
      <description>&lt;P&gt;Good day.&lt;BR /&gt;Thank you all for your active help.&lt;BR /&gt;But the solution was unexpected.&lt;BR /&gt;Because When calling% Load_params, a delimited error occurred. Then we used the% NRBQUOTE function&lt;BR /&gt;Example:&lt;BR /&gt;% Load_Params (CELL_PACKAGE_SK =% NRBQUOTE (&amp;amp; CELL_PACKAGE_SK.));&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2019 15:37:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612053#M178510</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-16T15:37:27Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612054#M178511</link>
      <description>&lt;P&gt;I apologize, your decision was also correct. But not obvious to me. My fault&lt;/P&gt;</description>
      <pubDate>Mon, 16 Dec 2019 15:43:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612054#M178511</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-16T15:43:35Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612335#M178657</link>
      <description>No need to apologize. Don't hesitate to ask for clarifications or examples if you don't fully understand an answer.</description>
      <pubDate>Tue, 17 Dec 2019 08:45:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612335#M178657</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2019-12-17T08:45:04Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612682#M178814</link>
      <description>&lt;P&gt;Thank you for understanding.&lt;BR /&gt;Faced the following problem. If you substitute the% NRBQUOTE function in LOAD_PARAM, then sas passes CELL_PACKAGE_SK one by one, and this is not what I need. I would like sas to pass CELL_PACKAGE_SK parameters in one line.&lt;/P&gt;&lt;P&gt;An example from the log how the process works now:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;MLOGIC(LOAD_PARAMS):  Beginning execution.
SYMBOLGEN:  Macro variable CELL_PACKAGE_SK resolves to 102118,102119
MLOGIC(LOAD_PARAMS):  Parameter CELL_PACKAGE_SK has value &amp;#6;102118&amp;#30;102119&amp;#8;
SYMBOLGEN:  Macro variable CELL_PACKAGE_SK resolves to 102118,102119
SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
MLOGIC(LOAD_PARAMS):  %DO loop beginning; index variable I; start value is 1; stop value is 2; by value is 1.  
MLOGIC(LOAD_PARAMS):  %LET (variable name is STR)
SYMBOLGEN:  Macro variable CELL_PACKAGE_SK resolves to 102118,102119
SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN:  Macro variable I resolves to 1
MPRINT(LOAD_PARAMS):   proc sql noprint;
MPRINT(LOAD_PARAMS):   connect to oracle (AuthDomain="Oracle_Auth" PATH="@sas-te-list.or:1111/CRM");
NOTE:  Credential obtained from SAS metadata server.
SYMBOLGEN:  Macro variable STR resolves to 102118
MPRINT(LOAD_PARAMS):   execute ( begin exchange.pck_params.pr_params_sto_load(102118);
MPRINT(LOAD_PARAMS):   end;
MPRINT(LOAD_PARAMS):   ) by oracle;
MPRINT(LOAD_PARAMS):   disconnect from oracle;
MPRINT(LOAD_PARAMS):   quit;

      

MLOGIC(LOAD_PARAMS):  %DO loop index variable I is now 2; loop will iterate again.
MLOGIC(LOAD_PARAMS):  %LET (variable name is STR)
SYMBOLGEN:  Macro variable CELL_PACKAGE_SK resolves to 102118,102119
SYMBOLGEN:  Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN:  Macro variable I resolves to 2
MPRINT(LOAD_PARAMS):   proc sql noprint;
MPRINT(LOAD_PARAMS):   connect to oracle (AuthDomain="Oracle_Auth" PATH="@sas-te-list.or:1111/CRM");
NOTE:  Credential obtained from SAS metadata server.
SYMBOLGEN:  Macro variable STR resolves to 102119
MPRINT(LOAD_PARAMS):   execute ( begin exchange.pck_params.pr_params_sto_load(102119);
MPRINT(LOAD_PARAMS):   end;
MPRINT(LOAD_PARAMS):   ) by oracle;
MPRINT(LOAD_PARAMS):   disconnect from oracle;
MPRINT(LOAD_PARAMS):   quit;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The question is the same, how to pass CELL_PACKAGE_SK parameters to Oracle in one line from sas.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2019 13:31:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612682#M178814</guid>
      <dc:creator>DRVAS</dc:creator>
      <dc:date>2019-12-18T13:31:41Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612684#M178816</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/300646"&gt;@DRVAS&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thank you for understanding.&lt;BR /&gt;Faced the following problem. If you substitute the% NRBQUOTE function in LOAD_PARAM, then sas passes CELL_PACKAGE_SK one by one, and this is not what I need. I would like sas to pass CELL_PACKAGE_SK parameters in one line.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You have a loop which causes the parameters to be passed one-by-one to Oracle. If you take out that loop, and use %NRBQUOTE(), all should be passed to Oracle as one large string with commas.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2019 13:50:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612684#M178816</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-12-18T13:50:18Z</dc:date>
    </item>
    <item>
      <title>Re: ERROR: All positional parameters must precede keyword parameters.</title>
      <link>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612695#M178819</link>
      <description>&lt;P&gt;I don't understand what your question is here.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The commas in the value of the macro variable cause trouble when passing the value into the macro in the macro call (since comma is a delimiter to the macro calling syntax).&amp;nbsp; Once you have the commas in the value of the macro variable you should be able to use that value to generate any syntax you need that requires commas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So your macro variable has two values separated by a comma:&lt;/P&gt;
&lt;PRE&gt;SYMBOLGEN:  Macro variable CELL_PACKAGE_SK resolves to 102118,102119&lt;/PRE&gt;
&lt;P&gt;If you want to generate this Oracle procedure call:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;execute (begin exchange.pck_params.pr_params_sto_load(102118,102119); end;) by oracle;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Then just use a reference to the macro variable instead of the hard coded list of values.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;execute (begin exchange.pck_params.pr_params_sto_load(&amp;amp;CELL_PACKAGE_SK); end;) by oracle;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;If your Oracle package needs some other syntax to handle multiple values in a single call then explain what that syntax is and adjust your SAS code the generate the syntax that Oracle needs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Dec 2019 14:36:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/ERROR-All-positional-parameters-must-precede-keyword-parameters/m-p/612695#M178819</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-12-18T14:36:52Z</dc:date>
    </item>
  </channel>
</rss>

