Oracle apex 变量已定义,但需要使其成为多个值

Oracle apex 变量已定义,但需要使其成为多个值,oracle-apex,Oracle Apex,没有在这里添加大量代码。我有一个APEX应用程序,其中有一个选择列表,我想从该列表中选择多个代码,作为回报,它们填充一个图表。我让它工作,我可以选择一个代码,它填充,但不知道如何使它,所以我可以选择两个值 例如(非真实数据或完整查询) 选择编号列表:(这些编号定义为变量p_编号) 我想选择1234和4567 我在查询中定义了变量 VARCHAR2中的p_编号 还将select_all_3d定义为: c_select_all_3D VARCHAR2(50):=NULL 定义变量的代码 IF

没有在这里添加大量代码。我有一个APEX应用程序,其中有一个选择列表,我想从该列表中选择多个代码,作为回报,它们填充一个图表。我让它工作,我可以选择一个代码,它填充,但不知道如何使它,所以我可以选择两个值

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

选择编号列表:(这些编号定义为变量p_编号)

我想选择1234和4567

我在查询中定义了变量

VARCHAR2中的p_编号

还将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;

我是否要添加一些内容,使代码的最后一行具有类似于“数字”的内容,或者“数字包含”的内容,这样它就可以拾取我选择的两个变量?

如果您要选择多个值,请严格执行以下操作:选择列表项允许您启用“选择多个值”。完成此操作后,项目的值将包含以冒号分隔的选定值,例如
1234:4567

你也会得到同样的结果

如果要使用这些值执行某些操作,则必须将该列拆分为行。有几个选择可以做到这一点;当我们处理Apex时,请参见
Apex\u string.string\u to\u 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_表保存在我调用的过程中,我将把这些值传递到的位置?您选择的任何选项,当您想对存储在同一项中的“多个值”执行某些操作时,将在以后使用它。例如,这可能是一份报告。
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>