Oracle pl/sql中的apex 5.1 apex_应用程序.g_打印成功消息

Oracle pl/sql中的apex 5.1 apex_应用程序.g_打印成功消息,oracle,plsql,oracle-apex,Oracle,Plsql,Oracle Apex,我在动态操作中使用pl/sql代码(当我按下按钮时启动)。 我做一个更新表。更新之后,我想通知用户更新是否成功。 我使用代码: if ( ) then update .... apex_application.g_print_success_message := '<span style="color:green">OK</span>'; end if; if()然后 更新。。。。 apex_application.g_print_success_消息:=

我在动态操作中使用pl/sql代码(当我按下按钮时启动)。 我做一个更新表。更新之后,我想通知用户更新是否成功。 我使用代码:

if (  ) then
   update ....
   apex_application.g_print_success_message := '<span style="color:green">OK</span>';
end if;
if()然后
更新。。。。
apex_application.g_print_success_消息:='OK';
如果结束;
但代码不起作用。它会更新,但我看不到通知

谢谢你的帮助


Hervé

我的建议是,通过选择类型作为plsql代码,在过程中编写plsql代码。从那里你也可以设定你的成功信息。我之前也尝试过使用apex_application.g_print_success_消息,但它对我不起作用。所以我改变了流程流程。

我的建议是通过选择类型作为plsql代码,在流程中编写plsql代码。从那里你也可以设定你的成功信息。我之前也尝试过使用apex_application.g_print_success_消息,但它对我不起作用。因此,我按流程进行了更改。

我是这样做的:

  • 创建一个存储过程,该过程接受某些参数,执行填充操作,并将成功(或失败)消息放入OUT参数中。比如说,

    create or replace procedure p_upd (par_empno in number, par_msg out varchar2) as
      begin
        update ...
        where empno = par_empno;
    
        par_msg := 'Updated ' || sql%rowcount || ' rows';
    end;
    
  • 在Apex中,创建一个隐藏的项(我们称之为
    P1\u MSG
  • 创建一个按钮,按下该按钮时调用一个利用前面提到的存储过程的进程:

    p_upd (:P1_EMPNO, :P1_MSG);
    
  • 最后,将其设置为成功流程消息:

    &P1_MSG.
    
    (请注意,前导的符号(
    &
    )和尾随的点(
    )-如果没有它们,它将无法工作。最终结果将是屏幕上显示“更新17行”消息(正如您看到的默认“操作已处理”消息)

就这些

当然,您可以直接在流程中编写一些PL/SQL代码,而不是调用过程,但我更喜欢过程,尤其是当有很多事情要做时(我宁愿在数据库中这样做)。

我是这样做的:

  • 创建一个存储过程,该过程接受某些参数,执行填充操作,并将成功(或失败)消息放入OUT参数中。例如

    create or replace procedure p_upd (par_empno in number, par_msg out varchar2) as
      begin
        update ...
        where empno = par_empno;
    
        par_msg := 'Updated ' || sql%rowcount || ' rows';
    end;
    
  • 在Apex中,创建一个隐藏的项(我们称之为
    P1\u MSG
  • 创建一个按钮,按下该按钮时调用一个利用前面提到的存储过程的进程:

    p_upd (:P1_EMPNO, :P1_MSG);
    
  • 最后,将其设置为成功流程消息:

    &P1_MSG.
    
    (请注意,前导的符号(
    &
    )和尾随的点(
    )-如果没有它们,它将无法工作。最终结果将是屏幕上显示“更新17行”消息(正如您看到的默认“操作已处理”消息)

就这些


当然,您可以直接在流程中编写一些PL/SQL代码,而不是调用过程,但我更喜欢过程,尤其是当有很多事情要做时(我更喜欢在数据库中这样做).

不支持直接更新此变量,因此请使用提供的逻辑Littlefoot(但适用于页面处理),或使用此API在后续JS操作中显示消息。不支持直接更新此变量,因此请使用提供的逻辑Littlefoot(但适用于页面处理),或使用此API显示消息在后续的JS操作中放置消息这适用于页面提交,这与g_print_success_消息有关,但如果OP处于动态操作中,则可能需要使用apex.message.showPageSuccess()?这适用于与g_print_success_消息相关的页面提交,但如果OP处于动态操作中,则可能需要apex.message.showPageSuccess()?