On 08-Dec-2014 10:26 -0600, Billy Waters wrote:
My first attempt at using dynamic SQL. Any help would be greatly
appreciated.
  w2 = 'R1';
  w3 = 'R9';
  w4 = 2015;
  w5 = 4;
  WSQL = 'select sum(pinv) into ? from CMSFWRK20 ' +
   'where PCLS between ? and ? ' +
   'and PYEAR = ? and PPERD = ?';
  Use VALUES ... INTO
  Exec Sql prepare S1 from :WSQL;
  Check for errors; the "Prepared statement S1 not found." is the 
expected error to occur when the prior PREPARE failed.  Operating with 
return-codes, after the invocations, the return-codes should be tested 
to verify the success or failure of the preceding request.
  Exec SQL
   execute S1 using :w1, :w2, :w3, :w4, :w5;
job log shows:
  CALL TEST
  Token ? was not valid. Valid tokens: :<IDENTIFIER>.
  That is the error that caused the PREPARE to fail.  Had the code 
detected that failure, then the EXECUTE could have been logically 
bypassed; perhaps the program would send its own message to diagnose the 
failure [of the PREPARE].
  Prepared statement S1 not found.
  Try the following [untested] VALUES INTO in place of what was 
attempted originally with SELECT INTO:
   WSQL =
     'values(' +
     ' select sum(pinv) ' +
     ' from CMSFWRK20   ' +
     ' where PCLS between ? and ?' +
     ' and PYEAR = ?' +
     ' and PPERD = ?' +
     '      ) into ?' ;
   Exec SQL
     prepare ValIntoRqs from :WSQL ;
   // check for errors; respond accordingly
   Exec SQL
     execute ValIntoRqs using :w1, :w2, :w3, :w4, :w5 ;
   // check for errors; respond accordingly
As an Amazon Associate we earn from qualifying purchases.
	
 
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.