Returning multiple values from a C UDR
Posted in 2003
Is there any way to return multiple values from a C-UDR? I'm
interested in the OUT parameters in a UDR definition. It looks like
these can only be used in the WHERE clause of one SQL statement.
Heres what I'm trying to do in SPL psuedo code.
DEFINE v_out_one INTEGER;
DEFINE v_out_two INTEGER;
DEFINE v_return_val INTEGER;
execute function test(1,v_out_one,v_out_two) into v_return_val;
-- use v_out_one and v_out_two
this will not work with error:
9781: SLV cannot be an argument to a function invoked explicitly byEXECUTE or CALL.
Error in line 1Near character position 38
> informix@warhol 107% finderr 9781
-9781 SLV cannot be an argument to a function invoked explicitly by
EXECUTE
or CALL.
A routine that has an OUT parameter can only be invoked as part of a
data-management language query (only in the WHERE clause). Do not
invoke such a routine with a CALL or EXECUTE statement.
I don't think I can do this with out params. I know I can create a
collection and return that but in the real scenario I'm returning a
lot of data for each output parameter (I would have multiple returned
collections!)
Thanks for any help or advise.