如何在DB2存储过程中用IN传递WHERE子句的逗号分隔

时间:2019-06-12 16:52:30

标签: db2

在将逗号分隔的字符串传递到DB2存储过程中时遇到一个问题。我需要为从调用应用程序获取的acct_numbers的给定列表选择emp_names。

我在SP中使用的SQL是:

DECLARE CSR1 CURSOR WITH RETURN FOR
SELECT emp_name
FROM employee_table
WHERE account_id IN (in_acct_Numbers)
WITH UR;

主叫应用程序将in_acct_Numbers传递为'1234',456',78901' 我的Cusror没有返回任何值。如果我仅为in_acct_Numbers传递一个值(例如'1234'),它将起作用。有人可以提供有关如何将逗号分隔的字符串传递给DB2存储过程中WHERE子句的IN参数的建议吗?我正在使用DB2版本11。

我在SP中使用的SQL是:

DECLARE CSR1 CURSOR WITH RETURN FOR
SELECT emp_name
FROM employee_table
WHERE account_id IN (in_acct_Numbers)
WITH UR;


DECLARE CSR1 CURSOR WITH RETURN FOR
SELECT emp_name
FROM employee_table
WHERE account_id IN (in_acct_Numbers)
WITH UR;

预期结果是,由于我要在in_acct_Numbers中传递三个帐户,因此光标应选择三行(emp_名称)。

0 个答案:

没有答案