出现内部错误,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并看到数据正确插入到表中。我现在的主要问题是让页面做其他事情,如分支到新的模式,但内部错误阻止了页面上的任何内容呈现,没有区域,没有按钮,什么都没有。
它们是修复错误的一种方法还是完全绕过它?我试过删除它应该有问题的组件,但同样的错误又出现在不同的组件上
1条答案
按热度按时间mhd8tkvw1#
当从apex内部调用过程时,该过程具有当前apex会话的上下文。
create_session
仅在APEX上下文之外需要,例如在从调度器作业调用但需要会话的代码中。所以我怀疑
apex_session.delete_session (v('APP_SESSION'));
正在破坏你在应用程序中正确连接的apex会话。只要删除应用程序或应用程序调用的任何代码中的任何apex_session
调用。