如何传递输入参数作为以逗号分隔的字符串或DB2中的IN子句列表 [英] how to pass input parameter as a string separated by comma or list for IN clause in DB2

查看:1107
本文介绍了如何传递输入参数作为以逗号分隔的字符串或DB2中的IN子句列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是一个新的存储过程,我有一个疑问,我需要传递输入参数作为一个字符串,由逗号分隔或列表中的IN子句在DB2。请参阅以下示例过程

I am new in stored procedure ,i have one doubt,I need to pass input parameter as a string separated by comma or list for IN clause in DB2. please see the below sample procedure

 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是否可以传递任何类型的列表作为输入参数,如果是的话,哪一个将提供更好的性能。

Please guide me, 1 how to write the above stored procedure 2 Is it possible to pass any kind of list as a input parameter ,if yes , which one will give better performance.

推荐答案

您可以创建数组数据类型,并将参数定义为该数据类型。

You can create an array datatype, and define your parameter as that datatype.

CREATE OR REPLACE TYPE UserList as char(10) ARRAY[100]

我选择char(10),因为这是他们在我的系统上,IBM i。使用适合您的任何内容,以及一个足够大的数组大小,以满足您的任何需要。

I picked char(10) because that's what they are on my system, IBM i. Use whatever is appropriate for yours, and an array size large enough for whatever use you may have.

使用它作为过程参数的类型。

Use this as the type for your procedure parameter.

这篇关于如何传递输入参数作为以逗号分隔的字符串或DB2中的IN子句列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆