【发布时间】:2018-04-07 16:33:42
【问题描述】:
我的问题是我正在尝试构建一个 SELECT 语句,这将取决于我将传递给它们的变量数量。
重要的是要知道我使用的是 Oracle 数据库。
有没有什么有效的方法来建立这样的声明?
例如 我有三个可以传递给数据库的变量(与“AND”关键字连接),它应该给我一个独特的结果。 opt1 - (WHERE var1=x AND var2=y AND var3=z)
但也有一个选项,我将只传递两个变量并获得结果 选择 2 - WHERE var1=x AND var2=y) 一个变量或无,并从数据库中获取每条记录。
我不想构建无数种不同的选择语句。必须有一种优雅的方式。
PS。这是与 webmethods 中的 JDBC 适配器有关的问题。也许有人知道如何在这种环境下解决这个问题?
【问题讨论】:
-
你需要传递一个数组并循环遍历它。查看oracle中的owa_util.ident_arr数据结构。从数组的 1..length 循环并构建 sql,然后执行它。在数组中存储 'col1=x'、'col2=y' 等
-
有更简单的方法吗?我很害怕我希望能够以数组形式在我的 webmethods 环境中传递变量。也许有一个选项,例如:检查变量是否为空并实现适当的逻辑?
-
查看webmethods的文档,通常我希望它支持某种数组参数。
-
如果要传递的变量个数未知,那么一定是数组。我在一个以这种方式构建查询的地方工作。每个 pl/sql 报告都采用了这个数组
标签: sql oracle select dynamic-sql webmethods