在程序中执行时提示如下错误。在网上查了很多都说可能是数据库的事儿。有的说解决办法有三种:
1、打补丁
2、更改ORACLE全局参数
3、升级到11.2
唉,可惜咱不是DBA,E文也差,说的各种方法都不实用。就觉得这个表的数据每天都得查几遍,怎么会出现这个问题呢?于是把代码粘到PLSQL里执行,如上图还真报错。
还不死心,自己写:
select * from T_Z_BRFY_MX where BKH_ZY='c112277' and ryxh
执行,没事儿!
再试:
select sum("T_Z_BRFY_MX"."FYJE") c_je,
max("T_Z_BRFY_MX"."ZXRQ") c_zxrq2,
min("T_Z_BRFY_MX"."ZXRQ") c_zxrq1
from T_Z_BRFY_Mx where
bkh_zy='c112277' and
ryxh=1 AND
("T_Z_BRFY_MX"."ZSXH" = '0' OR
"T_Z_BRFY_MX"."ZSXH" = '1')
执行,还是没事儿呀!看来跟SQL有关,接着来:
select sum("T_Z_BRFY_MX"."FYJE") c_je,
max("T_Z_BRFY_MX"."ZXRQ") c_zxrq2,
min("T_Z_BRFY_MX"."ZXRQ") c_zxrq1
from T_Z_BRFY_Mx where
bkh_zy='c112277' and
ryxh=1 AND
("T_Z_BRFY_MX"."ZSXH" = '0' OR
"T_Z_BRFY_MX"."ZSXH" = '1')
GROUP BY "T_Z_BRFY_MX"."BKH_ZY",
"T_Z_BRFY_MX"."RYXH",
"T_Z_BRFY_MX"."ZSXH"
还是没事!
select sum("T_Z_BRFY_MX"."FYJE") c_je,
max("T_Z_BRFY_MX"."ZXRQ") c_zxrq2,
min("T_Z_BRFY_MX"."ZXRQ") c_zxrq1
from T_Z_BRFY_Mx where
bkh_zy='c112277' and
ryxh=1 and
("T_Z_BRFY_MX"."ZSXH" = '0' OR
"T_Z_BRFY_MX"."ZSXH" = '1')
GROUP BY "T_Z_BRFY_MX"."BKH_ZY",
"T_Z_BRFY_MX"."RYXH",
"T_Z_BRFY_MX"."ZSXH"
ORDER BY "T_Z_BRFY_MX"."ZSXH" DESC
执行,卡了一下,直接报错,看来是出在排序的问题了。怎么解决呢?想到程序是用PB的DataWindow处理的。直接把排序放在数据窗口的属性里。
试了一下,居然不报错了!看来还真不能尽信书呀!