Oracle Apex内部错误,分析时无法验证用户“”的调用方

wvt8vs2t  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(116)

出现内部错误,Could not validate caller for user "" when parsing

- error_backtrace: ----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
0xbcede5c0      1033  package body APEX_190200.WWV_FLOW_ERROR.INTERNAL_GET_ERROR
0xbcede5c0      1101  package body APEX_190200.WWV_FLOW_ERROR.INTERNAL_ADD_ERROR
0xbcede5c0      1493  package body APEX_190200.WWV_FLOW_ERROR.RAISE_INTERNAL_ERROR
0xbcede5c0      1574  package body APEX_190200.WWV_FLOW_ERROR.RAISE_MASKED_INTERNAL_ERROR
0xd11c9840       501  package body SYS.WWV_DBMS_SQL_APEX_190200.PARSE_AS_USER
0xd11d27f0      2006  package body APEX_190200.WWV_FLOW_DYNAMIC_EXEC.PARSE_AS_USER
0xd11d27f0      2513  package body APEX_190200.WWV_FLOW_DYNAMIC_EXEC.RUN_BLOCK5
0xd11d27f0      1301  package body APEX_190200.WWV_FLOW_DYNAMIC_EXEC.GET_PLSQL_EXPR_RESULT_BOOLEAN
0xbc8fef90       207  package body APEX_190200.WWV_FLOW_CONDITIONS.STANDARD_CONDITION
0xbcd71460        71  package body APEX_190200.WWV_FLOW_META_UTIL.IS_OK_TO_DISPLAY
0xbcd71460       118  package body APEX_190200.WWV_FLOW_META_UTIL.IS_OK_T~ 
- component: APEX_APPLICATION_PAGE_REGIONS Region1

字符串
当我在Oracle Apex中页面上的header之前调用PL/SQL过程时:

begin
  doSomething;
end;


该过程中包含CREATE_SESSION过程:

CREATE OR REPLACE PROCEDURE doSomething
AS 
BEGIN

   apex_session.create_session (
    p_app_id   => 100,
    p_page_id  => 1,
    p_username => 'doSomething USER');

    insert into table1 (column1, column1) values (val1, val2);

   apex_session.delete_session (v('APP_SESSION'));

END;


doSomething过程似乎运行良好,因为在我得到内部错误后,我可以检查table 1并看到数据正确插入到表中。我现在的主要问题是让页面做其他事情,如分支到新的模式,但内部错误阻止了页面上的任何内容呈现,没有区域,没有按钮,什么都没有。
它们是修复错误的一种方法还是完全绕过它?我试过删除它应该有问题的组件,但同样的错误又出现在不同的组件上

mhd8tkvw

mhd8tkvw1#

当从apex内部调用过程时,该过程具有当前apex会话的上下文。create_session仅在APEX上下文之外需要,例如在从调度器作业调用但需要会话的代码中。
所以我怀疑apex_session.delete_session (v('APP_SESSION'));正在破坏你在应用程序中正确连接的apex会话。只要删除应用程序或应用程序调用的任何代码中的任何apex_session调用。

相关问题