Oracle Apex:PL / SQL块中的Javascript代码

是否有可能在PL / SQL块中拥有JavaScript代码。 我想在oracle Apex页面进程中执行包含JavaScript代码的pl / sql块。

DECLARE
  v_count   NUMBER;

  BEGIN
        select count(*) into v_count
        from summary
        where prd_items = 'Total';

 HTP.p ('<script type="text/javascript">');
 HTP.p (   'alert(''The value of Total for BU is ' ||v_count|| '.n'
      || 'You have to enter correct values to proceed further n'');');
 HTP.p ('</script>');
END; 

我在我的页面区域有Submit按钮,这个pl / sql块是页面处理项目,并在页面提交( Conditional:Submit )时执行。

但我无法弹出警告框。 请指教。

谢谢。


是否有可能在PL / SQL块中拥有JavaScript代码?

  • 但是,你试图做的不会工作,这是传递JavaScript函数AFTER SUBMIT.It只会工作,如果你将执行点改为AFTER HEADER。

    或者,如果您只想验证输入的值并且不想使用apex验证,则可以使用APEX_ERROR包。尝试此操作。

    DECLARE
      v_count   NUMBER;
    
      BEGIN
            select prd_items into v_count
            from summary
            where prd_items = 'Total';
            -- I dont really know what you want to 
            --accomplish with this query but Im pretty sure 
            --It will not return a number
            -- if you want to count the number of prd_items it should be like this
            --select COUNT(*) 
            --into v_count
            --from summary
            --where prd_items = 'Total';
    
    
        APEX_ERROR.ADD_ERROR(
          p_message            => 'The value of Total for BU is '||v_count||'.<br>'||
                                  'You have to enter correct values to proceed further',
          p_display_location   => apex_error.c_inline_in_notification 
        );  
    
    END; 
    

    编辑:如果你想显示错误,如果计数不等于100,然后做这样的事情:

    DECLARE
      v_count   NUMBER;
    
      BEGIN
    
         Select COUNT(*) 
         into v_count
         from summary
         where prd_items = 'Total';
    
      IF v_count != 100 THEN
        APEX_ERROR.ADD_ERROR(
          p_message            => 'The value of Total for BU is '||v_count||'.<br>'||
                                  'You have to enter correct values to proceed further',
          p_display_location   => apex_error.c_inline_in_notification 
        );  
    
    
     END IF;
    END; 
    

    要从pl / sql过程嵌入javascript代码,您必须将过程放在“Before Header”点之前。 但我不认为这是您尝试实现的最佳解决方案。

    你想要做的是添加验证权限? 如果是这样,为什么不使用顶点验证。 用这样的选项创建验证:

  • 确定验证级别:页面项目
  • 确定要验证的页面项目:选择您想要的项目。
  • 选择一个验证类型:PL / SQL
  • 选择您想要创建的验证类型:函数返回错误文本
  • 验证码:
  •     DECLARE  v_count          NUMBER;
      V_validation_msg VARCHAR2(500);
    BEGIN
      SELECT prd_items INTO v_count FROM summary WHERE prd_items = 'Total';
      V_validation_msg:='The value of Total for BU is ' ||v_count|| '.n' || 'You have to enter correct values to proceed further';
      IF 1= 1 THEN --add some condition here if you want
        RETURN V_validation_msg;
      ELSE
        RETURN NULL;
      END IF;
    END;
    
  • 按下按钮时:您的提交按钮。
  • 链接地址: http://www.djcxy.com/p/31063.html

    上一篇: Oracle Apex: Javascript code in PL/SQL Block

    下一篇: Fail to import android support v4 or v7 in library using productFlavors