Apex 5 以列表形式显示以分号分隔的穿梭存储数据
Apex 5 display shuttle stored data delimted by semicolon, in list form
正如标题所说。我将航天飞机数据保存在用分号分隔的列中:
confid | values
------------------------------------------------------
id1 | conf_value1;conf_value2;conf_value3;conf_value4
它存储的原因是因为没有一个配置是相同的,并且可以有任何介于单个配置值和 50 之间的值。因此为每个创建单独的列很困难。
但是我需要找到一种方法在 Apex 中以列表形式显示它,而不是用分号分隔。所以简单地做:
select values from table where confid='id1'
只是 returns:
conf_value1;conf_value2;conf_value3;conf_value4
用户难以阅读..
所以问题是,有没有办法在 Apex 中以列表形式显示数据?类似于当你进行搜索时它会显示:
confid | values
---------------------
id1 | conf_value1
conf_value2
conf_value3
conf_value4
或者 Apex 仅 return 中 table 中的数据喜欢样式吗?
将这些值拆分成行。这是一个例子; CTE在此提供测试数据。您需要评论后面的部分。
SQL> with test (confid, cvalues) as
2 (select 'id1',
3 'conf_value1;conf_value2;conf_value3;conf_value4'
4 from dual)
5 -- this is what you need
6 select regexp_substr(cvalues, '[^;]+', 1, level) value
7 from test
8 connect by level <= regexp_count(cvalues, ';') + 1;
VALUE
--------------------------------------------------------------------
conf_value1
conf_value2
conf_value3
conf_value4
SQL>
在 APEX 5.X 中你可以使用
APEX_UTIL.STRING_TO_TABLE (
p_string IN VARCHAR2,
p_separator IN VARCHAR2 DEFAULT ':')
RETURN APEX_APPLICATION_GLOBAL.VC_ARR2;
在 APEX 18.1 中,您可以使用 APEX_STRING.STRING_TO_TABLE
,因为上面的函数已被弃用。
正如标题所说。我将航天飞机数据保存在用分号分隔的列中:
confid | values
------------------------------------------------------
id1 | conf_value1;conf_value2;conf_value3;conf_value4
它存储的原因是因为没有一个配置是相同的,并且可以有任何介于单个配置值和 50 之间的值。因此为每个创建单独的列很困难。
但是我需要找到一种方法在 Apex 中以列表形式显示它,而不是用分号分隔。所以简单地做:
select values from table where confid='id1'
只是 returns:
conf_value1;conf_value2;conf_value3;conf_value4
用户难以阅读..
所以问题是,有没有办法在 Apex 中以列表形式显示数据?类似于当你进行搜索时它会显示:
confid | values
---------------------
id1 | conf_value1
conf_value2
conf_value3
conf_value4
或者 Apex 仅 return 中 table 中的数据喜欢样式吗?
将这些值拆分成行。这是一个例子; CTE在此提供测试数据。您需要评论后面的部分。
SQL> with test (confid, cvalues) as
2 (select 'id1',
3 'conf_value1;conf_value2;conf_value3;conf_value4'
4 from dual)
5 -- this is what you need
6 select regexp_substr(cvalues, '[^;]+', 1, level) value
7 from test
8 connect by level <= regexp_count(cvalues, ';') + 1;
VALUE
--------------------------------------------------------------------
conf_value1
conf_value2
conf_value3
conf_value4
SQL>
在 APEX 5.X 中你可以使用
APEX_UTIL.STRING_TO_TABLE (
p_string IN VARCHAR2,
p_separator IN VARCHAR2 DEFAULT ':')
RETURN APEX_APPLICATION_GLOBAL.VC_ARR2;
在 APEX 18.1 中,您可以使用 APEX_STRING.STRING_TO_TABLE
,因为上面的函数已被弃用。