选择声明上的ORA-03135

时间:2014-07-03 20:24:05

标签: php oracle oci8

对于一些Oracle的数据库用户来说,这是一个非常反复出现的问题,我已经阅读并尝试了不同的方法,并取得了成功。

我在SELECT语句中遇到ORA-03135错误。它只发生在一个表的特定记录上。该表有一个定义为varchar(4000)的字段,我发现当我尝试在之前告诉过的字段(大约2000个字符或更多字符)中读取一个带有大字符串的记录时会发生错误。

经过一些阅读后,我尝试设置SQLNET.EXPIRE_TIME,SQLNET.INBOUND_CONNECT_TIMEOUT, SQLNET.SEND_TIMEOUT和SQLNET.RECV_TIMEOUT没有成功。

我不认为这是一个超时问题,因为如果我在像Sqlplus这样的客户端上尝试相同的查询,那么我可以立即获得结果。

网络上没有防火墙,发生错误时服务器端没有生成警报/日志。也没有个人资料限制。

我正在使用在Oracle Linux和PHP OCI8上运行的Oracle 11.2数据库来检索数据。

我还有其他可以寻找的地方吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

好的,刚刚解决了......

我错了。看起来错误发生在字符串末尾有一些废话,而不仅是大的。删除最后一个字符可以解决问题。

我会做进一步的调查,并尝试准确发现正在发生的事情。

编辑1:

现在100%确定,当最后一个字符串是转义字符" \ n"时会发生错误。很有趣,是吗?