Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 在DB2存储过程中传递列表/数组_List_Stored Procedures_Db2 - Fatal编程技术网

List 在DB2存储过程中传递列表/数组

List 在DB2存储过程中传递列表/数组,list,stored-procedures,db2,List,Stored Procedures,Db2,我在一个Db2存储过程中调用这个查询,在这个过程中,我必须传递客户id列表——有什么工作建议吗 我试着在程序中通过它,如下所示 SELECT cc.clientid FROM customer_client cc GROUP BY cc.clientid HAVING SUM(CASE WHEN cc.customerid IN (4567, 5678) THEN 1 ELSE 0 END) = COUNT(*) AND COUNT(*) = 2; 但这是以字符串形式传递列表。您可以使

我在一个Db2存储过程中调用这个查询,在这个过程中,我必须传递客户id列表——有什么工作建议吗

我试着在程序中通过它,如下所示

SELECT cc.clientid
FROM customer_client cc
GROUP BY cc.clientid
HAVING SUM(CASE WHEN cc.customerid IN (4567, 5678) THEN 1 ELSE 0 END) = COUNT(*) 
   AND COUNT(*) = 2;

但这是以字符串形式传递列表。

您可以使用
字符串标记器:

CREATE PROCEDURE Find_Client_Customers (
    IN IN_CUSTIDS VARCHAR(1000),
    IN IN_CUST_COUNT INT)

您可以使用
字符串标记器

CREATE PROCEDURE Find_Client_Customers (
    IN IN_CUSTIDS VARCHAR(1000),
    IN IN_CUST_COUNT INT)

Db2的平台和版本是什么?平台是windows,DB211“数组”意味着某种编程语言;那么,您使用什么编程语言来调用该过程呢?Db2的哪个平台和版本?windows平台和DB211“Array”意味着某种编程语言;那么,您使用哪种编程语言来调用该过程呢?在db2上运行上述程序时会出现此错误——不过这在db FIDLE上是有效的。这些条款相互排斥。SQLCODE=-628,SQLSTATE=42613,DRIVER=4.17.36 SQL代码:-628,SQL状态:42613@Ryan什么不起作用<代码>创建函数
?它适用于Linux上的我的11.1。它也必须在Windows上工作。感谢您的帮助,答案是正确的-它在DB Fiddle上运行良好,但在DB2 Windows上对我不起作用。。所以我接受了答案。现在,我得到了一个名为tokenize的XQUERY函数,其中有两个参数没有在静态上下文中定义。错误QNAME=errr:XPST0017。SQLCODE=-16009,SQLSTATE=10506在db2上运行上述命令时出现此错误——不过这在db FIDLE上是有效的。这些条款相互排斥。SQLCODE=-628,SQLSTATE=42613,DRIVER=4.17.36 SQL代码:-628,SQL状态:42613@Ryan什么不起作用<代码>创建函数?它适用于Linux上的我的11.1。它也必须在Windows上工作。感谢您的帮助,答案是正确的-它在DB Fiddle上运行良好,但在DB2 Windows上对我不起作用。。所以我接受了答案。现在,我得到了一个名为tokenize的XQUERY函数,其中有两个参数没有在静态上下文中定义。错误QNAME=errr:XPST0017。SQLCODE=-16009,SQLSTATE=10506
SELECT cc.clientid
FROM customer_client cc
GROUP BY cc.clientid
HAVING SUM(CASE WHEN cc.customerid IN 
(
select t.tok
from table(regexp_tokenize_number('4567, 5678', ',')) t
) THEN 1 ELSE 0 END) = COUNT(*) 
AND COUNT(*) = 2;