On 03-Sep-2014 16:59 -0500, Gary Thompson wrote:
From my very limited understanding, having div_lib
as declared as VARCHAR in SQL proc GETLIB was 'the issue'
I changed GETLIB SQL proc to be:
CREATE PROCEDURE SWIRETEST/GETLIB
( IN out_loc CHARACTER (4)
, OUT div_lib CHARACTER(10)
Probably not an /issue/ with VARCHAR in the alluded sense; i.e. more
likely a difficulty had, than any likely issue to be had, per use of the
I intend SQL proc GETLIB to be a standard utility for us.
Personally, I would [tend to] make the GETLIB routine a scalar User
Defined Function (UDF) instead of a PROCEDURE to increase the utility;
the GetLib routine could then be referenced directly in queries. Thus
using CREATE FUNCTION (scalar); return the value currently defined as
OUT for the PROCEDURE, as a scalar VARCHAR [or CHAR] result of the FUNCTION.
Then instead of an SQLRPGLE using the SQL CALL, the request could be
a SET; e.g. instead of the first, the second:
call getlib( :inp_loc , :rtn_libr ) ;
set rtn_libr = getlib(inp_loc) ;