Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question

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

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

share|improve this answer

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

share|improve this answer

protected by Community Oct 29 '15 at 8:45

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?