Oracle APEX 22.2中页面项如何显示多值?应选何种项类型?
解决方案
1. 先修复查询语句
你的原始查询会触发ORA-01422: 实际返回的行数超出请求的行数错误,因为SELECT ... INTO仅支持单行结果。必须先将多行mat_cat合并为单个字符串,推荐使用Oracle的LISTAGG函数:
SELECT LISTAGG(mat_cat, ', ') WITHIN GROUP (ORDER BY mat_cat) INTO :P4_SHOW_MAT_CAT FROM mat_req;
- 若需要换行展示,可将分隔符
,替换为<br>,适配多行展示的页面项。
2. 选择合适的页面项类型
根据展示需求选择对应类型:
- 文本字段(Text Field):适合短内容的逗号分隔单行展示。
- 文本区域(Text Area):适合较长内容,支持自动换行,搭配
<br>分隔符可实现每行一个值的效果。 - 显示仅文本(Display Only Text):适合只读场景,若要生成带项目符号的列表,可修改查询为:
SELECT '<ul><li>' || LISTAGG(mat_cat, '</li><li>') WITHIN GROUP (ORDER BY mat_cat) || '</li></ul>' INTO :P4_SHOW_MAT_CAT FROM mat_req;
需将该页面项的Escape Special Characters属性设为No,避免HTML被转义为纯文本。
内容的提问来源于stack exchange,提问作者Mohammed Ali
相关产品推荐
相关产品推荐

