带有参数LOV列表的报告构建器select语句(带有多个条目)

时间:2015-12-13 17:00:16

标签: sql oracle parameters

我在oracle报告构建器(p_user)中创建了一个参数,它可以返回一个包含多个用户的列表。

如何在我的select语句中使用它来获取正确的列表?

我现在有:

选择note,user,dep_name,dep_id 来自departement_notes user =:p_user

现在,如果我选择1个用户,它将显示该用户的所有笔记。当我选择多个用户时,它将不会显示任何内容,因为“用户”与p_user值不匹配。

实施例

如果参数'p_user'= AR,则列表显示用户AR的所有内容 当参数'p_user'= AR,CZ,GD时,则不显示任何内容

1 个答案:

答案 0 :(得分:0)

你基本上想要参数化IN子句,以便它是user in (:p_user),其中p_user是以逗号分隔的列表。不幸的是,这是不可能的。但是,有很多方法可以参见here。 在你的情况下,它看起来像这样:

select note,user,dep_name,dep_id 
  from departement_notes    
 WHERE ','||:p_user||',' LIKE '%,'||user||',%'

这样,您可以在字符串,(username),中搜索字符串,AR,CZ,GD,。逗号是必要的,这样您就不会匹配用户名A。请记住,此方法不允许您使用user列上的索引,因此请谨慎使用。还有另一种方法here