【发布时间】:2020-07-10 11:56:39
【问题描述】:
以下代码在 oracle 11g 中工作,但 oracle 12c 版本 1 给出 ora-00600 错误。我怎样才能让它独立于数据库版本?
DECLARE
lxml xmltype;
l_tag varchar2(30);
begin
lxml :=
xmltype('<responseObject>
<error>That is not a valid request</error>
<errorCode>A11</errorCode>
<value>A</value>
</responseObject>
');
l_tag := 'responseObject/*';
FOR test IN (
select tag,
VALUE
FROM xmltable(l_tag
passing lxml
columns
tag VARCHAR2(128) path 'name()',
VALUE VARCHAR2(128) path '.'
) t
)
LOOP
dbms_output.put_line(test.tag || ' - ' || test.value);
END LOOP;
end;
/
【问题讨论】:
-
ORA-00600 通常是坏消息,读作“联系 Oracle 支持”,因为这意味着存在内部错误。 但是,我在 12c (12.2.0.1.0) 上尝试了您的代码,它工作正常。您使用哪个版本?您查看了 My Oracle Support 吗?
-
ORA-00600 是 Oracle 针对未处理的副作用(即代码中的错误)的标准错误消息。标准建议是联系 Oracle 支持。如果您没有支持合同,您可能会不走运。此类错误通常特定于确切版本的数据库和/或操作系统。发布消息和您的环境的完整详细信息,可能有人会帮助您。
-
下面 SELECT 名称的 o/p 是什么,值 FROM v$parameter WHERE name = 'compatible';