如何解决ora-00600:内部错误代码(在线等待)

[复制链接]
查看11 | 回复2 | 2005-6-27 01:01:25 | 显示全部楼层 |阅读模式
执行以下语句,要出现错误:
ora-00600:内部错误代码,自变量:[5213],[],[],[],[],[],[],[]
如果把UNION取消,又可以,感觉是数据量太大造成的,但对这种问题,应该如何查是哪里的问题的?
SELECT 库房id,药品id,批次, SUM(实际数量) AS 帐面数量 ,SUM(盘点数量) AS 盘点数量 ,
SUM(实际金额) AS 实际金额 ,SUM(实际差价) AS 实际差价 ,SUM(可用数量) As 可用数量,
max(批号) as 批号 ,max(产地) as 产地,max(效期) as 效期
FROM (SELECT a.库房id,b.药品id,NVL(批次, 0) AS 批次,a.实际数量,0 盘点数量,

a.实际金额,a.实际差价,a.可用数量,a.上次批号 AS 批号,a.上次产地 AS 产地,a.效期
FROM 药品库存 a,药品目录 b,药品信息 c

Where a.药品id = b.药品id AND b.药名id = c.药名id and

a.性质 = 1 AND

a.库房id + 0 = 324
UNION ALL
SELECT a.库房id,b.药品id,NVL(a.批次, 0) AS 批次,-SUM(DECODE(a.入出系数,1,a.实际数量 * a.付数,-a.实际数量 * a.付数)) AS 实际数量,

0 盘点数量,-SUM(DECODE(a.入出系数, 1, a.零售金额, -a.零售金额)) AS 实际金额,

-SUM(DECODE(a.入出系数, 1, a.差价, -a.差价)) AS 实际差价,0 AS 可用数量,

a.批号,a.产地,a.效期
FROM 药品收发记录 a,药品目录 b,药品信息 c,

(Select * From 药品储备限额 Where 库房ID + 0 = 324)
e
Where a.药品id = b.药品id AND b.药名id = c.药名id
and b.药品id = e.药品id(+)
GROUP BY a.库房id,b.药品id,a.批次,a.批号,a.产地,a.效期 )
GROUP BY 库房id, 药品id, 批次
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。
回复

使用道具 举报

千问 | 2005-6-27 01:01:25 | 显示全部楼层
今天又遇到这个问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行