【发布时间】:2019-12-19 07:41:05
【问题描述】:
我有一个带有输入参数的存储过程,它是 Varchar 的一个多值参数。 传递的参数被传递给查询的 IN 子句。 我无法弄清楚如何在存储过程中处理它。 到现在为止,我有这个(这是实际存储过程的sn-p):
CREATE OR replace PROCEDURE <SCHEMA>.Some_Proc
(
IN V_INDSTRY_DESCRPTN VARCHAR (2000)
)
DYNAMIC RESULT SETS 1
BEGIN
DECLARE WHERE_CLAUSE VARCHAR(5000) DEFAULT '';
DECLARE OUTER_CLAUSE VARCHAR(2000) DEFAULT '';
DECLARE V_SQL VARCHAR(10000) DEFAULT '';
DECLARE CSR_RSLT_SET CURSOR WITH RETURN FOR S1;
IF (V_INDSTRY_DESCRPTN != 'ALL') THEN
SET WHERE_CLAUSE = WHERE_CLAUSE || 'AND industry.INDSTRY_DESCRPTN in ( '''||V_INDSTRY_DESCRPTN||''')' ;
END IF;
SET V_SQL ='<SOME QUERY>'
/*some other logic goes here*/
PREPARE S1 FROM V_SQL;
OPEN CSR_RSLT_SET;
END
我这样调用程序:
CALL <SCHEMA>.Some_Proc ('industry1')
1)如何在同一个参数中发送多个值?
CALL <SCHEMA>.Some_Proc ("'industry1','industry2'") 给出编译错误
2)如何处理过程中的多值参数。
【问题讨论】:
标签: stored-procedures db2