首页 > 解决方案 > 调用 APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS 时出错

问题描述

我正在从 EBS 调用 APEX 页面。我在 Before 标头中编写了一个代码来设置会话值。

lv_profile_value := NVL(xxua_apex_common_pkg.fnd_profile_value 
                        ('ICX_SESSION_TIMEOUT'),'0');
:EBS_ICX_SESSION_TIMEOUT := TO_NUMBER(lv_profile_value)*10;
 APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS (p_seconds => 
                                             :EBS_ICX_SESSION_TIMEOUT);

此处“ICX_SESION_TIMEOUT”的 fnd_profile_value 设置为 240。

现在,如果我使用:

:EBS_ICX_SESSION_TIMEOUT := TO_NUMBER(lv_profile_value)*10;

然后我得到这个错误:'ORA-06502:PL/SQL:数字或值错误:数字精度太大'

但如果我只是写

 :EBS_ICX_SESSION_TIMEOUT := TO_NUMBER(lv_profile_value)*9;

一切正常。有人可以建议为什么当我乘以 9(240*9=2160)时它不会出错,而当我乘以 10(240*10=2400)时会出错。

该值在我的变量中正确设置:'EBS_ICX_SESSION_TIMEOUT'

但是当 APEX_UTIL.SET_SESSION_MAX_IDLE_SECONDS 被调用时,它会抛出这个错误。

请建议。

标签: oracle-apexoracle-ebs

解决方案


推荐阅读