oracle apex 值列表 - 选择值并在下一个字段的 SQL 查询中使用

2024-02-04

我将 Apex 4.0.2 与 Oracle XE 11 结合使用。

我有一个表格,上面有一个字段,P200_CARD_TYPE,是从值列表中设置的。我想要发生的是使用我在设置“仅显示”字段的查询中选择的值,P200_DESC

在源代码部分中P200_DESC,我将“源类型”设置为“SQL 查询”:

SELECT CARD_DESC
  FROM CARDTYPE
 WHERE card_type = :P200_CARD_TYPE;

我遇到的问题是让 Apex 以这种方式运行。 为了P200_CARD_TYPE,如果我将“值更改时的页面操作”设置为“重定向并设置值”,则P200_CARD_TYPE变量似乎已设置,(我将其写到表中)但是

  1. 它不会保留在字段显示中,(返回到我的空显示设置)
  2. P200_DESC不认识P200_CARD_TYPE绑定变量

If on P200_CARD_TYPE,我有“值更改时的页面操作”设置,所以没有,我的选择保留在屏幕上,但我无法坚持到表格和P200_DESC看来还是没认出来。

我会想,一旦我从 LOV 中做出选择,P200_CARD_TYPE已设置,我可以在其他地方使用它。


看来您还没有正确理解会话状态。此类问题在这里和 OTN 顶级论坛上经常出现。

来自文档: http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35125/concept_ses.htm#BEIHBFJJ

HTTP 是最常传送 HTML 页面的协议, 无状态协议。 Web 浏览器仅连接到服务器 与下载完整页面所需的时间一样长。此外,每个 页面请求被服务器视为独立事件, 与之前发生的或可能发生的任何页面请求无关 发生在未来。访问在某一页上输入的表单值 在后续页面中,这些值必须存储为会话状态。甲骨文 Application Express 透明地维护会话状态并提供 开发人员能够从中获取和设置会话状态值 应用程序中的任何页面。

在您的情况下,这意味着您认为从该 LOV 中选择一个值会改变该项目的会话状态。它不是。您在客户端选择一个值,该值仅在客户端可用,直到以某种方式推送到服务器。

这对于理解 apex 至关重要!在继续之前你需要理解这一点,因为你会再次遇到类似的情况。

现在我们已经解决了这个问题,让我们继续讨论如何解决这个问题。

将值推送到服务器的最基本方法?执行页面提交。所有项目的会话状态将使用它们在客户端保存的值进行设置(例外情况适用,但现在让我们忽略它)。
这是您的选择列表操作出错的地方:您执行了重定向。重定向不是页面提交,而只是重定向。通过设置目标项目的值,您只能更改该项目的会话状态。
因此,并不是 SQL 无法识别该变量,而是它没有值,因此无法呈现任何内容。
当然,您可能不想仅仅为了设置字段的值而提交页面。提交可能会导致验证、分支或流程触发。

这就是 Tony Andrews 的建议:使用动态操作来动态检索值。例如,您可以这样设置:

  • 将选择列表设置为在值更改时不执行任何操作。
  • 右键单击树视图中的选择列表,然后选择“创建动态操作”
  • 作为事件选择“更改”事件
  • 对于真正的操作,选择“设置值”
  • “设置类型”应该是“sql语句”
  • 使用您也定义为 desc 项源的 sql:

    SELECT CARD_DESC
      FROM CARDTYPE
     WHERE card_type = :P200_CARD_TYPE;
    
  • 最后也是非常重要的:在“要提交的页面项目”字段中,添加P200_CARD_TYPE。这将导致当前值P200_CARD_TYPE提交到服务器,从而设置其会话状态,使查询正常工作。

现在,当选择列表上的值发生变化时,将调用服务器/数据库,并返回一个值并在描述项中设置。
还有更多内容,但这应该会让您朝着正确的方向前进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle apex 值列表 - 选择值并在下一个字段的 SQL 查询中使用 的相关文章

随机推荐

  • 同一虚拟机中已存在另一个未命名的 CacheManager (ehCache 2.5)

    这就是我运行 junit 测试时发生的情况 Another CacheManager with same name cacheManager already exists in the same VM Please provide uniq
  • 让 foreach() 和 ggplot2 和谐相处

    我有一组调查数据 我想生成按受访者所在国家 地区分组的特定变量的图 到目前为止 我编写的生成绘图的代码是 countries lt isplit drones drones v3 foreach country countries dopa
  • 将 MapKit 用户坐标转换为屏幕坐标时遇到问题

    好吧 这实际上是一个线程中的三个不同的问题 1 我正在使用 void viewDidLoad super viewDidLoad mapView setFrame CGRectMake 100 100 520 520 mapView set
  • 在不知道 Clojure 中的键的情况下,如何将映射解构为键值对?

    假设我有一张这样的地图 a 1 b 2 c 3 我想像这样映射它 注意 非工作伪代码 mapcat fn key key a value value a println key key a n value value a 如果不先获取函数的
  • uvicorn 在 AWS Fargate 上 1-2 分钟后关闭

    我在 AWS Fargate 上使用 Python 3 10 1 和应用程序负载均衡器部署了 FastAPI 0 81 0 uvicorn 0 18 3 服务器在我的本地 Docker 中无限期地运行 如预期 但是在 AWS 上 应用程序总
  • 如何在 Laravel 5 中导入 symfony 进程类?

    我想知道如何在 laravel 5 中导入 symfony 进程类 我在 laravel 的控制台中使用了它 但显示错误 未找到 进程 类 use Symfony Component Process Process 这样你就可以使用 Pro
  • Java 对象序列化性能技巧

    我必须将一棵巨大的对象树 7 000 个 序列化到磁盘中 最初 我们用 Kodo 将这棵树保存在数据库中 但它会进行成千上万的查询才能将这棵树加载到内存中 并且会占用本地宇宙可用时间的很大一部分 我为此尝试了序列化 并且确实获得了性能改进
  • 将 Json 对象导出到文本文件

    我正在尝试编写一个 Json 对象 JsonExport 并且想将其内容写入文本文件 我正在使用 max4live 将数据从 Audio DAW 导出到 Json 以便导出到服务器 但之后我希望在文本文件中看到整个 Json 对象 var
  • 如何仅使用日期从 DATETIME 列中进行选择?

    我的表上有一个 DATETIME 列 用于存储创建记录的时间 我只想选择在特定日期创建的记录 如果我尝试 SELECT FROM myTable WHERE postedOn 2012 06 06 即使表中有很多行 它也不返回任何行post
  • 我们如何在 Angular 4 中获取 HttpClient 状态代码

    嗨 Angular 新手 我面临着获取 HTTP 状态代码的问题 该代码位于 HTTP 模块中 我可以使用轻松获取响应代码响应状态 但是当我使用HttpClient模块我无法获取response status 它显示找不到状态 那么 我怎样
  • C:负数和余数背后的数学

    这似乎是处理 Remainder Mod 时被问到的第一件事 而我对此有点碰壁 我正在用一本教科书和一堆 C 代码自学编程 鉴于我没有真正的教练说 不 不 它实际上是这样工作的 我想我应该在这里尝试一下 不过 我还没有找到数学部分的结论性答
  • 如何在 clojure 中创建可执行文件?

    我一直在使用 Clojure Box 在 REPL 环境中学习 clojure 如何制作可执行文件 jar 我想知道这样的事情是否可能 在记事本上编写 clojure 代码并将其命名为project clj 编译项目 clj 获取可执行文件
  • 构建此 Linq-to-Events 拖放代码的最佳方法是什么?

    我正在尝试处理拖放交互 其中涉及鼠标按下 鼠标移动和鼠标向上 这是我的解决方案的简化重现 按下鼠标时 创建一个椭圆并将其添加到画布上 鼠标移动时 重新定位椭圆以跟随鼠标 鼠标松开时 会更改画布的颜色 以便清楚地看出您正在拖动哪一个 var
  • 如何克服 grails 服务中的 StaleObjectStateException

    我引入了一个 TransactionService 我在控制器中使用它来执行乐观事务 它应该 尝试执行给定的事务 关闭 如果失败则回滚 如果失败再试一次 它基本上看起来像这样 class TransactionService transac
  • 哪些 Spark 转换会导致 Shuffle?

    我很难在 Spark 文档中找到导致随机播放的操作和不会导致随机播放的操作 在这个列表中 哪些会导致洗牌 哪些不会 映射和过滤器则不然 但是 我不确定其他人的情况 map func filter func flatMap func mapP
  • 将 SimpleDateFormat 转换为 DateTimeFormatter

    因此 当尝试使用 SimpleDateFormat 和 Date 替换一些遗留代码以使用 java time DateTimeFormatter 和 LocalDate 时 我遇到了问题 这两种日期格式不等效 在这一点上 我必须说我知道这两
  • 生成产品激活序列号

    首先 这不是为其他产品生成序列号的问题 我是not寻求 破解 其他产品 这是我的要求 我想生成一个标准的序列号 AILU7 ABCDE 54321 1234 AFCK 17UDF 我需要一些过程来验证该序列号是否 有效 这部分确实not必须
  • 在 Laravel 中更新数据库的多行

    我想要一个用于更新多行数据库的代码 如下所示 UPDATE values SET data options male female default male where project id 1 and id 1 UPDATE values
  • 设计新的 Twitter 小部件(嵌入时间线)

    几天 几周前 我的一些网站的 Twitter 小部件停止正确提取数据 事实证明 版本 2 的 Twitter 小部件已被弃用 显然 新的嵌入式时间轴小部件是唯一的出路 https dev twitter com blog planning
  • oracle apex 值列表 - 选择值并在下一个字段的 SQL 查询中使用

    我将 Apex 4 0 2 与 Oracle XE 11 结合使用 我有一个表格 上面有一个字段 P200 CARD TYPE 是从值列表中设置的 我想要发生的是使用我在设置 仅显示 字段的查询中选择的值 P200 DESC 在源代码部分中