如何解决多个按钮和 LOV 上的 WWV_FLOW_DYNAMIC_EXEC.PARSE_AS_USER 错误
将一个非常旧的应用程序升级到 APEX 20.2 后,除了在调用 WWV_FLOW_DYNAMIC_EXEC.PARSE_AS_USER 时所有按钮和 lov 抛出两个错误之一的几个页面外,一切都运行得非常好:
Could not validate caller for user "" when parsing
select select 1
from TD_PNART
Could not validate env for schema "APEX_PUBLIC_USER":context=,parse_as_schema=,parse_as_schema_override=,sgid=,curr_flow_sgid=994328456202381,flow_id=220,when parsing
我已经尝试了所有方法,从更新授权方案、搜索每条 sql 以查找可能使架构用户过期的内容、重新创建对象、重新验证 ORDS 等,但每次都会出现错误和 sql Trace/APEX Trace不提供进一步的信息。我在 Google 或 Oracle Support 上也找不到问题。
如何诊断这样的内部错误?
- error_backtrace: ----- PL/sql Call Stack -----
object line object
handle number name
0x6d5e0d58 947 package body APEX_200200.WWV_FLOW_ERROR.INTERNAL_GET_ERROR
0x6d5e0d58 1015 package body APEX_200200.WWV_FLOW_ERROR.INTERNAL_ADD_ERROR
0x6d5e0d58 1407 package body APEX_200200.WWV_FLOW_ERROR.RAISE_INTERNAL_ERROR
0x6d5e0d58 1488 package body APEX_200200.WWV_FLOW_ERROR.RAISE_MASKED_INTERNAL_ERROR
0x825ab978 521 package body SYS.WWV_DBMS_sql_APEX_200200.PARSE_AS_USER
0x73579878 1698 package body APEX_200200.WWV_FLOW_DYNAMIC_EXEC.PARSE_AS_USER
0x73579878 2378 package body APEX_200200.WWV_FLOW_DYNAMIC_EXEC.SELECT_INTO_I
0x73579878 2459 package body APEX_200200.WWV_FLOW_DYNAMIC_EXEC.SELECT_NUM
0x73579878 1263 package body APEX_200200.WWV_FLOW_DYNAMIC_EXEC.DO_ROWS_EXIST
0x8239fac8 290 package body APEX_200200.WWV_FLOW_CONDITIONS.STANDARD_CONDITION
0x851816e0 71 package body APEX_200200.WWV_FLOW_Meta_UTIL.IS_OK_TO_disPLAY
解决方法
Oracle 的一位工程师能够解决这个问题,这是一个完全出乎意料的解决方案:
只是为了其他可能遇到相同问题的开发人员的利益 问题。问题是该页面仍然包含 键入已在 APEX 中取消支持的“带计算器的文本字段” 5.0.渲染这样一个页面项后,剩下的页面渲染就被破坏了,导致了上述错误。我已经提交了错误 #32828261 最终删除该项目类型并将现有项目转换为文本字段。
解决方法:
手动将现有页面项目更新为文本字段。
select workspace,application_id,application_name,page_id,page_name,item_name
from apex_application_page_items
where display_as_code = 'NATIVE_TEXT_WITH_CALCULATOR'
order by workspace,item_name
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。