gpt4 book ai didi

stored-procedures - 如何使用 odbc :param_query in Erlang 调用获取数组的存储过程

转载 作者:行者123 更新时间:2023-12-03 14:51:22 24 4
gpt4 key购买 nike

我在 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]}]).

它抛出异常

exception exit: {badarg,odbc,param_query,'Params'} in function odbc:decode/1 (odbc.erl, line 894)



有没有其他方法可以将列表(数组)传递给存储过程?

最佳答案

我相信您需要在两个参数列表中具有相同数量的参数,这意味着在您的第二个列表或参数中添加三个 1。

odbc:param_query(Ref,  "CALL sum (?, ?)", [{sql_integer, [1,2,3,4]}, {sql_integer, out, [1,1,1,1]}]).

关于stored-procedures - 如何使用 odbc :param_query in Erlang 调用获取数组的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18929391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com