5

We are using Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 and we have an error on a query that gives us the error

Error: No more data to read from socket
SQLState:  null
ErrorCode: 17410

The query is similar to the following

select * from (
    select ... <many, MANY fields>
    from table   
    inner join
    left outer join
    left outer join
    inner join
    where string1='value1' and string2='value2'

) where rownum > 500 and rownum < 510

If I try to remove the final where statement the query runs fine. Also if I try to "reduce" the rownum filter to a lower level of records the query runs fine:

where rownum<10

Searching on internet I have found that it could be caused by the parameter "cursor_sharing" to "similar" that seems buggy on some version of oracle. I tried to set it to "exact" but unfortunately I have the same error.

I was wondering if the retrieved data of a select statement may have a limit in bytes in oracle10g but I haven't found anything. I have found a limit on oracle8i but nothing to oracle10g.

We have the same problem executing the query on different client (dbvisualizer, squirrel) and on oracle console.

migrated from serverfault.com Nov 9 '11 at 16:02

This question came from our site for system and network administrators.

  • 1
    "No more data to read from socket" usually means "contact Oracle support" or try and work around what I presume is a bug by re-factoring your query. – Jack Douglas Nov 9 '11 at 19:29
  • where rownum > 500 and rownum < 510 This will never work. The first row that is returned will get rownum=1. But your where condition says: do not return that row. Therefore you never will have any row. – user39576 Jun 5 '14 at 12:07
  • 1
    That may be the case, but an error "No more data to read from socket" isn't the same as a query returning 0 rows, but some bug. On the other hand, maybe this condition is somehow triggering the error? – Colin 't Hart Jun 5 '14 at 13:36
5

No more data from socket means that the shadow process crashed, with an ORA-600 or ORA-7445, for example. Look for a trace file in the user_dump_dest directory and/or an entry in the alert log. This is likely a bug

See this : https://blogs.oracle.com/db/entry/ora-600_troubleshooting

0

For future googlers,

My case was a glassfish 2 server hosting applications using hibernate.

The error is attributed to the Oracle DB server failing and glassfish does not recover.

Restarting the server solves the issue