Oracle APEX插入数据失败时如何展示校验插入结果的错误消息
Oracle APEX 插入操作失败的错误提示实现方案
- 方法1:自定义PL/SQL插入逻辑中捕获异常抛出提示
这是最灵活的实现方式,直接在你编写的插入语句外层套异常捕获块,调用APEX原生的错误消息API即可抛出可视化提示,完整示例代码如下:
如果需要针对特定错误类型输出更精准的提示,比如数字格式错误(错误码-1722),可以拆分异常捕获逻辑:BEGIN -- 替换为你自己的插入语句 INSERT INTO 目标表(字段1, 数字字段2, 字段3) VALUES (:P1_INPUT1, :P1_NUM_INPUT, :P1_INPUT3); -- 可选:插入成功的提示 apex_message.add_success_message('数据插入成功'); EXCEPTION WHEN OTHERS THEN -- 捕获所有异常输出错误提示 apex_error.add_error( p_message => '数据插入失败,错误原因:' || SQLERRM, p_display_location => apex_error.c_inline_in_notification, -- 同时在页面顶部和对应输入项下方显示提示 p_page_item_name => 'P1_NUM_INPUT' -- 可选,绑定错误到对应输入项,方便用户快速定位问题 ); ROLLBACK; END;EXCEPTION WHEN OTHERS THEN IF SQLCODE = -1722 THEN apex_error.add_error( p_message => '输入格式错误,数字字段不可输入文本内容', p_display_location => apex_error.c_inline_in_notification, p_page_item_name => 'P1_NUM_INPUT' ); ELSE apex_error.add_error( p_message => '插入失败,错误详情:' || SQLERRM, p_display_location => apex_error.c_inline_in_notification ); END IF; ROLLBACK; - 方法2:前端页面项预校验提前拦截错误
针对输入类错误(比如数字字段输文本),可以直接在页面对应项的配置中设置规则,把错误拦截在提交前:- 把数字类型字段的页面项类型设为「数字」,而非纯文本输入框
- 配置格式掩码、输入范围限制、必填校验等规则
该方式可拦截90%以上的输入格式类错误,无需等到执行插入逻辑才提示。
- 方法3:进程级通用错误提示配置
如果你是把插入逻辑写在APEX的后台处理进程中,无需额外写代码,直接在进程的「错误」配置页签下设置:- 自定义错误消息文本:可填写「数据插入失败,请检查输入内容格式是否正确」
- 显示位置选择「通知和内联」
配置后只要进程执行失败就会自动弹出你设置的提示信息,适合快速配置的场景。
内容的提问来源于stack exchange,提问作者Seko sonogo
相关产品推荐
相关产品推荐

