使用 apex_util.submit_feedback 过程创建新反馈时如何获取反馈 ID

How to get feedback id when a new feedback is created using apex_util.submit_feedback procedure

我正在尝试在 APEX 应用程序中使用 apex_util.submit_feedback 程序创建反馈。

apex_util.submit_feedback (
p_comment         => :P102_FEEDBACK,
p_type            => :P102_FEEDBACK_TYPE,
p_application_id  => :P102_APPLICATION_ID,
p_page_id         => :P102_PAGE_ID,
p_email           => null);

我的问题是如何引用新建的反馈记录?

有没有returns反馈Id的out参数? 我搜索了 oracle 文档,但没有关于如何获取反馈 ID 的信息。

查看 APEX 4.2(我没有安装 5.0)反馈 table WWV_FLOW_FEEDBACK 有一个触发器 WWV_FLOW_FEEDBACK_T1 可以执行此操作:

if inserting and :new.id is null then
    :new.id := wwv_flow_id.next_val;
end if;

所以可能是这样调用apex_util.submit_feedback后可以立即得到反馈的ID:

new_feedback_id := wwv_flow_id.curr_val; 

但是,apex_util.submit_feedback 可能会从某些其他序列明确设置 ID,在这种情况下触发器不会设置它。多试几次检查应该很容易。

请记住,即使这现在有效,也不能保证 Oracle 不会在未来的 APEX 版本中改变它的工作方式并破坏您的代码!