【问题标题】:variable defined but need to make it so the variable can be multiple values变量已定义但需要使变量可以是多个值
【发布时间】:2019-11-18 15:08:06
【问题描述】:

无需在此处添加大量代码。我有一个 APEX 应用程序,其中有一个选择列表,我想从该列表中选择多个代码,然后它们填充一个图表。我让它在我可以选择一个代码的地方工作,它会填充,但不知道如何制作它,所以我可以选择两个值。

例如(不是真实数据或完整查询)

选择数字列表:(这些被定义为变量 p_number)。

1234
2345
3456
4567

我想选择 1234 和 4567。

我在查询中定义了变量

p_number IN VARCHAR2,

还将 select_all_3d 定义为:

c_select_all_3D VARCHAR2 (50) := NULL;

定义变量的代码

    IF p_number IS NULL
    THEN
        c_select_all_3D := NULL;
    ELSE
        c_select_all_3D := ' and number = ''' || p_number || '''';
    END IF;

我是否要添加一些内容,以便最后一行代码具有类似 number in 或 number contains 的内容,这样它会同时获取我选择的两个变量?

【问题讨论】:

  • 您首先应该确定一种将多个值传递给您的过程的方法。

标签: oracle-apex


【解决方案1】:

如果您想选择多个值,那么就这样做:选择列表项允许您启用“选择多个值”。一旦你这样做了,项目的值将包含用冒号分隔的选定值,例如1234:4567

使用 Shuttle 项目也会得到相同的结果。

如果您想对这些值进行操作,则必须将该列拆分为行。有几个选项可以做到这一点;当我们与 Apex 打交道时,请参阅 apex_string.string_to_table

另一方面,如果你总是只有两个值,你甚至可以

SQL> with test (col) as
  2    (select '1234:4567' from dual)
  3  select regexp_substr(col, '^\d+') first_value,
  4         regexp_substr(col, '\d+$') second_value
  5  from test;

FIRS SECO
---- ----
1234 4567

SQL>

【讨论】:

  • 查看 APEX_UTIL.STRING_TO_TABLE 选项。我是 sql/APEX 的新手,所以当我查看它的作用时有点困惑,就实现这一点而言,这是页面上 APEX 工作区中的动态操作中的内容,还是 APEX_UTIL。 STRING_TO_TABLE 保存在我调用的过程中,我会将这些值传递到哪里?
  • 您选择的任何选项,稍后会在您想要对存储在同一个项目中的“多个值”执行某些操作时使用。例如,这可能是一份报告。
猜你喜欢
  • 2020-11-30
  • 2018-08-06
  • 2014-10-09
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
相关资源
最近更新 更多