[英]ORA-00600: internal error code, arguments:[5213],[][][][], oracle 8
I have created this query to retrieve specific results. 我已创建此查询来检索特定结果。 but, it gives me this error.
但是,这给了我这个错误。 I have records since 1995. so, if I want to retrieve all the data.
我自1995年以来就有记录。因此,如果我想检索所有数据。 I get the following error.
我收到以下错误。
ERROR at line 38:
ORA-00600: internal error code, arguments:[5213],[][][][]
SELECT TO_NUMBER(SOLF.I_NO) I_NO,
GEHA.G_NAME,
ITEMS.I_NAME,
TO_NUMBER(SOLF.G_NO) G_NO,
NVL(SOLF.SL_MONY,0) SL_MONY,
SOLF.SL_DATE THE_DATE,
SOLF.SRF_NO SRF_NO,
SOLF.SOLF_NO SOLF_NO,
SUM(NVL(TS_MONY,0)) TS_MONY,
NVL(SOLF.SL_MONY,0)- SUM(NVL(TS_MONY,0)) TOTAL, 1 THE_ORDER
FROM
SOLF,TSDED,GEHA,ITEMS
WHERE
SOLF.SOLF_NO = TSDED.SOLF_NO(+)
AND GEHA.G_NO = SOLF.G_NO
AND
ITEMS.I_NO = SOLF.I_NO
GROUP BY SOLF.I_NO,
GEHA.G_NAME,
ITEMS.I_NAME ,
SOLF.G_NO,
SOLF.SL_MONY,
SOLF.SL_DATE,
SOLF.SRF_NO,
SOLF.SOLF_NO
UNION ALL
SELECT TO_NUMBER(TSDED.I_NO) I_NO,
GEHA.G_NAME,
ITEMS.I_NAME,
TO_NUMBER(TSDED.G_NO) G_NO,
0 SL_MONY,
TSDED.TS_DATE THE_DATE ,
TSDED.SRF_NO SRF_NO,
TSDED.SOLF_NO SOLF_NO,
SUM(NVL(TS_MONY,0)) TS_MONY,
0 -SUM(NVL(TS_MONY,0)) TOTAL, 2 THE_ORDER
FROM
TSDED,GEHA,ITEMS
WHERE
GEHA.G_NO = TSDED.G_NO
AND
TSDED.SOLF_NO NOT IN
(
SELECT SOLF_NO
FROM
SOLF
)
AND
ITEMS.I_NO = TSDED.I_NO
GROUP BY TSDED.I_NO,
GEHA.G_NAME,
ITEMS.I_NAME ,
TSDED.G_NO,
TSDED.TS_DATE,
TSDED.SRF_NO,
TSDED.SOLF_NO
ORDER BY G_NO, I_NO , THE_ORDER ,THE_DATE ;
I have tried to fix it, but with no results. 我试图修复它,但没有结果。 anyways, the error line is 38 which is : TSDED,GEHA,ITEM.
无论如何,错误行是38,它是:TSDED,GEHA,ITEM。 my oracle database is 8i
我的oracle数据库是8i
What version of Oracle are you running? 您正在运行什么版本的Oracle? If you are using a version below 8.1.6.3 you are probably hitting bug 1331849,
如果您使用的版本低于8.1.6.3,则可能会遇到错误1331849,
Description: Queries with a UNION ALL and more than one disk sort operation may fail with error ORA-600 [[5213]] 说明:使用UNION ALL进行的查询和多个磁盘排序操作可能会失败,并显示错误ORA-600 [[5213]]
http://www.orafaq.com/forum/t/9968/ http://www.orafaq.com/forum/t/9968/
In general ora-00600 is an internal error, usually this is related to some internal structure getting corrupted or a bug in the database. 通常,ora-00600是内部错误,通常与内部结构损坏或数据库中的错误有关。
To work around the issue the easiest way I think is probably to use a table (temporary or not); 要解决此问题,我认为最简单的方法可能是使用一个表(临时表或非临时表)。 separately insert the row you need there avoiding the union all and query the table.
分别在其中插入需要的行,避免所有并集,然后查询表。
If we assume each query in the union works w/o error; 如果我们假设联合中的每个查询都不会出错, then Maybe forcing the engine to materialize the results then sort using an inline view/subquery.
那么也许会迫使引擎具体化结果,然后使用内联视图/子查询进行排序。
SELECT *
FROM (SELECT TO_NUMBER(SOLF.I_NO) I_NO
, GEHA.G_NAME
, ITEMS.I_NAME
, TO_NUMBER(SOLF.G_NO) G_NO
, NVL(SOLF.SL_MONY,0) SL_MONY
, SOLF.SL_DATE THE_DATE
, SOLF.SRF_NO SRF_NO
, SOLF.SOLF_NO SOLF_NO
, SUM(NVL(TS_MONY,0)) TS_MONY
, NVL(SOLF.SL_MONY,0)- SUM(NVL(TS_MONY,0)) TOTAL
, 1 THE_ORDER
FROM SOLF,TSDED,GEHA,ITEMS
WHERE SOLF.SOLF_NO = TSDED.SOLF_NO(+)
AND GEHA.G_NO = SOLF.G_NO
AND ITEMS.I_NO = SOLF.I_NO
GROUP BY
SOLF.I_NO,
GEHA.G_NAME,
ITEMS.I_NAME,
SOLF.G_NO,
SOLF.SL_MONY,
SOLF.SL_DATE,
SOLF.SRF_NO,
SOLF.SOLF_NO
UNION ALL
SELECT TO_NUMBER(TSDED.I_NO) I_NO
, GEHA.G_NAME
, ITEMS.I_NAME
, TO_NUMBER(TSDED.G_NO) G_NO
, 0 SL_MONY
, TSDED.TS_DATE THE_DATE
, TSDED.SRF_NO SRF_NO
, TSDED.SOLF_NO SOLF_NO
, SUM(NVL(TS_MONY,0)) TS_MONY
, 0 -SUM(NVL(TS_MONY,0)) TOTAL
, 2 THE_ORDER
FROM TSDED,GEHA,ITEMS
WHERE GEHA.G_NO = TSDED.G_NO
AND TSDED.SOLF_NO NOT IN (SELECT SOLF_NO FROM SOLF)
AND ITEMS.I_NO = TSDED.I_NO
GROUP BY
TSDED.I_NO,
GEHA.G_NAME,
ITEMS.I_NAME ,
TSDED.G_NO,
TSDED.TS_DATE,
TSDED.SRF_NO,
TSDED.SOLF_NO) mSub
ORDER BY
G_NO,
I_NO,
THE_ORDER,
THE_DATE;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.