我是存储过程的新手,我有一个疑问,我需要将输入参数作为以逗号分隔的字符串或 DB2 中 IN 子句的列表传递。请参阅下面的示例程序
CREATE PROCEDURE TEST_SP(IN @listofUsername)
SPECIFIC TEST_SP DYNAMIC RESULT SETS 1
P1:BEGIN
DECLARE CURSOR1 CURSOR WITH RETURN FOR
SELECT F_NAME FROM TEST WHERE USER_NAME IN (@listofusername);
}
OPEN CURSOR1;
END P1
请指导我,
1 如何编写上面的存储过程
2 是否可以传递任何类型的列表作为输入参数,如果可以,哪一个会提供更好的性能。
您可以创建数组数据类型,并将参数定义为该数据类型。
CREATE OR REPLACE TYPE UserList as char(10) ARRAY[100]
我选择了 char(10),因为它们在我的系统 IBM i 上就是这样的。使用适合您的任何内容,并且数组大小足以满足您的任何用途。
使用它作为过程参数的类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)