私はdb2にストアドプロシージャを持っています
create type intArray as integer array[100]@
create or replace procedure sum(in numList intArray, out total integer)
begin
declare i, n integer;
set n = CARDINALITY(numList);
set i = 1;
set total = 100;
while (i <= n) do
set total = total + numList[i];
set i = i + 1;
end while;
end@
Erlang odbc:param_query で呼び出そうとしています。
odbc:param_query(Ref, "CALL sum (?, ?)", [{sql_integer,[1]}, {sql_integer,out, [1]}]).
上記は私に適切なリターンを与えています
{executed,1,[{101}]}
しかし、複数の値を次のように渡すと
odbc:param_query(Ref, "CALL sum (?, ?)", [{sql_integer,[1,2,3,4]}, {sql_integer,out, [1]}]).
例外をスローしています
例外終了: 関数 odbc:decode/1 の {badarg,odbc,param_query,'Params'} (odbc.erl、894 行目)
リスト (配列) をストアド プロシージャに渡す他の方法はありますか?