我有一个名为产品的表格,它有以下3列: ID ,名称和版本 。对于任何给定的行,版本列可能有多个以逗号分隔的版本。我想知道的是如何在我的Apex应用程序中创建一个包含LOV的选择列表,每个版本用逗号分隔?
示例,如果我在产品表中有以下行:
1 | myProduct | 1.0, 1.1, 1.2
如何在我的Apex应用程序中创建一个显示以下LOV的选择列表:'1.0','1.1'或'1.2'?
答案 0 :(得分:2)
当然有可能。请注意,选择列表要求您按行返回数据,因此我们需要将连接的字符串转换为行。 我个人喜欢使用XML来做到这一点:
SELECT trim(val)
FROM
xmltable('/root/e/text()' passing XMLTYPE('<root><e>'
|| REPLACE('1.1, 1.2, 1.3, 1.4',',','</e><e>')
|| '</e></root>') columns val VARCHAR2(50) path '/' )
将返回
TRIM(VAL)
---------
1.1
1.2
1.3
1.4
所以你可以像这样申请:
WITH prd_versions AS (
SELECT versions FROM products WHERE id = :PX_PRODUCT_ID
)
SELECT trim(val)
FROM prd_versions p,
xmltable('/root/e/text()' passing XMLTYPE('<root><e>'
|| REPLACE(p.v,',','</e><e>')
|| '</e></root>') columns val VARCHAR2(50) path '/' )
当然有其他方法可以将字符串拆分成行,就像谷歌快速向您展示一样!
答案 1 :(得分:1)
假设您使用的是简单表单,而不是表格形式,那么您可以这样做:
STATIC2:&P1_VERSIONS.
(您可能需要从存储在P1_VERSIONS中的值中修剪空格。)