sql - 使用 XMLTABLE 视图时出现“ORA-03113:通信文件结束”
问题描述
即使在运行涉及带有 XMLTABLE 的视图的最简单查询时,Oracle (11g) 也会返回ORA-03113
错误并终止连接。发生这种情况的查询不需要很大,但它似乎总是在涉及具有 XMLTABLE 解析的视图时发生。
例如,假设一个视图具有以下 SQL:
CREATE VIEW test_view
AS SELECT id, date, xt.a
FROM test_xml_table x,
XMLTABLE(XMLNAMESPACES(DEFAULT 'some:default:formation'),
'//root/' PASSING XMLTYPE(x.xml) COLUMNS a
VARCHAR2(256) PATH '//@a1') xt
WHERE xml IS NOT NULL;
WITH
v_raw AS
(SELECT *
FROM test_view WHERE id = 1),
v_aggregate AS
(SELECT *
FROM v_raw)
SELECT 1 FROM v_raw WHERE rownum <= 1
UNION ALL
SELECT 1 FROM v_aggregate WHERE rownum <= 1;
出于示例目的,我已经尽可能地简化了查询,但这足以导致以下错误:
ORA-03113: end-of-file on communication channel
和更简单的查询都test_view
工作得很好而且很快,似乎只有在选择中同时处理至少两个视图时才会发生这种情况,其中一个使用 XML 解析器调用视图。
任何想法可能是什么问题或任何可能的解决方法而不需要完全重写?到目前为止,我发现的一个解决方案是创建一个表而不是视图,但这不是最佳解决方案。
解决方案
推荐阅读
- java - 错误“ID 为 'junit-jupiter' 的 TestEngine 未能发现测试”。尝试在 Maven 项目中运行 JUnit 测试时出现此错误
- javascript - Node Fastify - 提供位于上传文件夹中的图像
- windows - 批处理文件以在具有特定名称的文件夹和子文件夹上运行命令
- pine-script - RSI 背离 - 更高的时间范围
- java - 如果条件仍然有效,如何在单独的线程中延迟运行方法
- python - 如何处理 Django Rest Framework 中的嵌套序列化器字段?
- qt - QML中,顶点坐标的数据存放在Mesh的什么地方?
- javascript - 如何 24/7 全天候运行 php 脚本?
- excel - 多个 BeforeDoubleClick
- c# - 复制 StringBuilder 的最佳方法是什么?