oracle将块写入文件 201 时出现 IO 错误

错误现象:
执行如下查询语句时:

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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的空间,已经用了8191MB,所以导致查询语句时,临时表空间容量不够。所以增大临时表空间的容量后问题解决。

你可能感兴趣的:(oracle,OS)