执行(28:6):ORA-00600:内部错误代码,参数:[]、[]、[]、[]、[]
Execution (28: 6): ORA-00600: internal error code, arguments: [], [], [], [], []
create table agl_spell_gr7 as
select * from(
WITH cte1 AS (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY Meter_id ORDER BY Realtimeclock) rn
FROM loadsurvey t
),
cte2 AS (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY Meter_id ORDER BY Realtimeclock) rn
FROM loadsurvey t
WHERE I_R <> 0 and I_Y <> 0 and I_B <> 0
),
cte3 AS (
SELECT t1.*,
t1.rn - t2.rn AS diff
FROM cte1 t1
INNER JOIN cte2 t2
ON t1.Meter_id = t2.Meter_id AND t1.Realtimeclock = t2.Realtimeclock
)
SELECT
Meter_id,
MIN(Realtimeclock) AS start_time,
MAX(Realtimeclock) AS end_time,
COUNT(I_Y) AS I_Y,
COUNT(I_B) AS I_B,
COUNT(I_R) AS I_R, ROW_NUMBER() OVER (PARTITION BY Meter_id ORDER BY Meter_id ) AS Spell,
sum(KWH) as KWH,
sum(KWPH) as KWPH
FROM cte3
GROUP BY
Meter_id,
diff);
大家好,
从上面的代码创建 table 时出现以下错误。
请指导我如何进行 table 创建。
[错误]执行(28:6):ORA-00600:内部错误代码,参数:[rwoirw:检查ret val],[],[],[],[],[],[],[],[ ], [], [], []
ORA-00600 是 Oracle 未处理异常(即错误)的错误编号。 ORA-00600 错误的本质是它们通常是边缘情况,由某些代码构造 运行 针对特定 OS 平台上的特定数据库版本抛出。因此,他们通常需要补丁来修复它们。但是,由于您似乎使用的是过时版本的 Oracle(10g 但也有 11g??),我猜您不太可能在拥有支持合同的组织工作 and/or 有兴趣将数据库保持在修补状态。
在这种情况下,这可能无关紧要。 Google suggests this internal error 有时会被 CREATE TABLE AS SELECT 语句抛出。你有一个 CTAS 语句,带有一堆分析函数。因此,您可以简单地通过使用独立的 CREATE TABLE 语句并使用单独的 INSERT 语句填充 table 来解决此问题。
最近在使用 Create table abc as select a,b,a.... from xyz 时遇到同样的错误
并尝试了 google 搜索中的各种解决方案,但没有任何效果。终于遇到这个link
https://programmer.ink/think/oracle-11g-uses-rownum-to-perfect-ora-00600-internal-error-code.html
建议只在脚本末尾添加一个where子句
“where rownum>-1”并且它有效。为我工作所以我想在这里分享它。
create table agl_spell_gr7 as
select * from(
WITH cte1 AS (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY Meter_id ORDER BY Realtimeclock) rn
FROM loadsurvey t
),
cte2 AS (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY Meter_id ORDER BY Realtimeclock) rn
FROM loadsurvey t
WHERE I_R <> 0 and I_Y <> 0 and I_B <> 0
),
cte3 AS (
SELECT t1.*,
t1.rn - t2.rn AS diff
FROM cte1 t1
INNER JOIN cte2 t2
ON t1.Meter_id = t2.Meter_id AND t1.Realtimeclock = t2.Realtimeclock
)
SELECT
Meter_id,
MIN(Realtimeclock) AS start_time,
MAX(Realtimeclock) AS end_time,
COUNT(I_Y) AS I_Y,
COUNT(I_B) AS I_B,
COUNT(I_R) AS I_R, ROW_NUMBER() OVER (PARTITION BY Meter_id ORDER BY Meter_id ) AS Spell,
sum(KWH) as KWH,
sum(KWPH) as KWPH
FROM cte3
GROUP BY
Meter_id,
diff);
大家好,
从上面的代码创建 table 时出现以下错误。
请指导我如何进行 table 创建。 [错误]执行(28:6):ORA-00600:内部错误代码,参数:[rwoirw:检查ret val],[],[],[],[],[],[],[],[ ], [], [], []
ORA-00600 是 Oracle 未处理异常(即错误)的错误编号。 ORA-00600 错误的本质是它们通常是边缘情况,由某些代码构造 运行 针对特定 OS 平台上的特定数据库版本抛出。因此,他们通常需要补丁来修复它们。但是,由于您似乎使用的是过时版本的 Oracle(10g 但也有 11g??),我猜您不太可能在拥有支持合同的组织工作 and/or 有兴趣将数据库保持在修补状态。
在这种情况下,这可能无关紧要。 Google suggests this internal error 有时会被 CREATE TABLE AS SELECT 语句抛出。你有一个 CTAS 语句,带有一堆分析函数。因此,您可以简单地通过使用独立的 CREATE TABLE 语句并使用单独的 INSERT 语句填充 table 来解决此问题。
最近在使用 Create table abc as select a,b,a.... from xyz 时遇到同样的错误 并尝试了 google 搜索中的各种解决方案,但没有任何效果。终于遇到这个link https://programmer.ink/think/oracle-11g-uses-rownum-to-perfect-ora-00600-internal-error-code.html
建议只在脚本末尾添加一个where子句 “where rownum>-1”并且它有效。为我工作所以我想在这里分享它。