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

错误现象:

执行如下查询语句时:

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,所以导致查询语句时,临时表空间容量不够。所以我的解决方法就是增大临时表空间的容量。

 

你可能感兴趣的:(oracle)