我正在从 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 被调用时,它会抛出这个错误。
请建议。