You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apex Oracle多列弹出LOV:能否获取两个显示值d和d2?

在Apex Oracle多列弹出LOV中同时获取两个显示值的方法

可以实现,但默认情况下Apex只会将LOV查询里的r列(即id)作为返回值存储到绑定变量中。要同时拿到d(name)和d2(code)这两个显示值,可通过以下几种方式操作:

  • 方法一:合并返回列后拆分
    修改LOV查询,把需要的显示值和返回值用分隔符合并到r列中:

    SELECT name d,
           id || '|' || code r,
           code d2
    FROM   employees
    WHERE  codes IN ('ABC','DEF','GHI')
    ORDER BY name
    

    后续在页面处理或计算项中,用字符串拆分函数拆分合并值,比如获取code的语句:

    REGEXP_SUBSTR(:P1_EMPLOYEE_LOV, '\|(.*)$', 1, 1, NULL, 1)
    

    拆分后的值可分别存入对应的页面项。

  • 方法二:通过动态操作联动查询
    利用LOV的"更改"事件触发AJAX查询,根据选中的id获取对应显示值:

    1. 创建两个隐藏页面项(如P1_EMP_NAME、P1_EMP_CODE)
    2. 给LOV项添加"更改"事件的动态操作
    3. 在操作中执行PL/SQL代码:
      SELECT name, code
      INTO :P1_EMP_NAME, :P1_EMP_CODE
      FROM employees
      WHERE id = :P1_EMPLOYEE_LOV;
      
    4. 设置执行后刷新这两个隐藏项,即可获取对应的显示值。
  • 方法三:利用Apex新版本的额外返回值属性(20.1+)
    若使用Apex 20.1及以上版本,可直接在LOV属性的"额外返回值"区域配置映射:

    • 将name列映射到页面项P1_EMP_NAME
    • 将code列映射到页面项P1_EMP_CODE
      用户选择LOV项后,Apex会自动将这两个显示值填充到对应页面项中,无需额外编码。

内容的提问来源于stack exchange,提问作者Coding Duchess

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:04:52