所以,我有点纠结于这个..。我目前正在使用一个多选择列表来捕获和存储数据库中的值(冒号分隔)。
示例:A:S:O
我想使用动态LOV将这些值转换成更有意义的东西。例如:
Auto, Student, Other但是,我不知道该怎么做。我熟悉动态LOV,但是如何处理不同顺序的各种组合呢?
我是否被迫使用apex_item并遍历数组?我能以某种方式利用listagg和/或connect by语句吗?
我有一个键表,其中KEY_NAME存储密钥(例如a,s,o,等等)。KEY_LABEL存储相应的翻译。
先端4.2 -甲骨文11gr2
发布于 2017-12-19 07:29:00
我不知道KEY_NAME表是用来干什么的?如果它只包含一个列(a,s,o,.),那么KEY_LABEL (在这种情况下,必须包含带有相应描述的ID)就足够了。
不管怎样,像这样的东西有什么用吗?
SQL> with key_label (id, name) as
2 -- sample labels
3 (select 'a', 'auto' from dual union
4 select 's', 'student' from dual union
5 select 'o', 'other' from dual union
6 select 'm', 'moto' from dual
7 ),
8 lov (value) as
9 -- this is your LoV value
10 (select 'a:o:s' from dual
11 ),
12 ones as
13 -- LoV value transformed into rows
14 (select regexp_substr(l.value, '[^:]+', 1, level) id
15 from lov l
16 connect by level <= regexp_count(l.value, '[^:]+')
17 )
18 -- final result (join Lov, as rows, with labels
19 select listagg(k.name, ':') within group (order by r.id) result
20 from key_label k, ones r
21 where k.id = r.id;
RESULT
---------------------------------------------------------------------
auto:other:student
SQL>https://stackoverflow.com/questions/47877296
复制相似问题