在 Oracle apex 中的列上设置自定义验证

Posted

技术标签:

【中文标题】在 Oracle apex 中的列上设置自定义验证【英文标题】:Set custom validation on a column in Oracle apex 【发布时间】:2020-05-13 16:01:42 【问题描述】:

我想在名为 :P8_HOME 和 :P8_AWAY 的列上创建自定义验证。我有几张桌子可以识别篮球比赛。 您是管理员,想为未来添加新游戏。如果任何一支球队在同一天已经有一场比赛,您想在其中添加一场比赛,那么系统会显示一条错误消息。

例如,当输入比赛日期,主客场球队并按下“添加按钮”时,系统将查看任一球队当天是否有比赛。如果有,则系统将显示消息并拒绝它。

如何在处理中添加验证? 以下是变量列表: P8_GAME_ID P8_GAME_DATE P8_HOME P8_AWAY P8_HOME_POINT P8_AWAY_POINT

【问题讨论】:

你好啊哈。验证在 apex 中非常常见。不确定您需要什么样的帮助。右键单击构建器中的页面项目并选择“创建验证”。 google 和 *** 上有很多例子。 【参考方案1】:

您可以为此创建page level validation。

    创建验证,输入“No Rows Returned”(即如果返回任何行,则将其视为验证失败) 放在“SQL Query”下面进行验证检查
    SELECT * 
    FROM <your_table_name> games
    WHERE games.home = :P8_HOME
    AND games.away = :P8_AWAY
    /*if you are using different date format from application date format, then use TO_DATE to convert into date */
    AND games.date = :P8_GAME_DATE 
    /* For new rows consider all rows in DB, for existing rows, don't consider current row*/
    AND (:P8_GAME_ID IS NULL
      OR games.game_id != :P8_GAME_ID)
    添加适当的“错误消息”和“服务器端条件”

【讨论】:

【参考方案2】: 右键单击您的必填页面项并创建验证 另一个是创建进程并选择 plsql 块,您可以验证所有验证,如 if else 条件基础,然后通过 rasie_application_error 方法的错误消息进行验证

【讨论】:

以上是关于在 Oracle apex 中的列上设置自定义验证的主要内容,如果未能解决你的问题,请参考以下文章

穿梭列上的 Oracle APEX 交互式网格过滤器 APEX 19.2

在交互式报表中创建列链接 -Oracle Apex

Oracle Apex 自定义身份验证错误 - “MY_AUTHENTICATION”不是一个过程

Oracle APEX 4.2 经典报告中的自定义搜索

Oracle-Apex 链接显示不同的值

在 ORACLE 中的子查询的列上求和