IMZRH的日志

努力成为一个有用的人

导航

Oracle临时表空间不够,导致查询出错。

Posted on 2008-08-07 14:11  张荣华  阅读(4252)  评论(0编辑  收藏  举报

错误现象:

执行如下查询语句时:

1      SELECT EI_GUID,EI_SBBSH,EI_TBNY,EI_JJDWMC,EI_EJDWMC,EI_SJDWMC,EI_SIJDWMC,EI_SBJB,EI_SBMC,EI_SBBSH,FF_SBLX FROM EM_EQUIPMENTINFO
2                             left join  EM_EIREFERORGCODE on EM_EIREFERORGCODE.EIO_SBBSH = EM_EQUIPMENTINFO.EI_SBBSH 
3                             left join EM_FLEXIBLEFIELDS on EM_FLEXIBLEFIELDS.FF_SBBSH = EM_EQUIPMENTINFO.EI_SBBSH

4                             WHERE  EIO_JJDWDM = 10200000

 

 报错,错误信息如下:

ORA-01114: 将块写入文件 201 时出现 IO 错误 (块 # 523145)
ORA-27069: skgfdisp: 尝试在文件范围外执行 I/O

OSD-04026: 传递的参数无效。 (OS 523151)

注意,这时如果把红色部分标识的FF_SBLX列去掉,就不会报错了。 (EI开头的字段属于EM_EQUIPMENTINFO表,FF开头的字段属于EM_FLEXIBLEFIELDS表,EIO开头的字段属于EM_EIREFERORGCODE表)。

 

解决方法:

通过查看Oracle的存储情况发现临时表空间被分配了8192MB的空间,已经用了8191,所以导致查询语句时,临时表空间容量不够。所以我的解决方法就是增大临时表空间的容量。