This discussion is archived
4 Replies Latest reply: Oct 5, 2012 4:39 AM by Mr Lonely RSS

No more data to read from socket error.

Mr Lonely Newbie
Currently Being Moderated
Oracle Version
SQL> select * from v$version;

BANNER
------------------------------------------------------------------------------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
I am trying a code like below
MERGE INTO TABLE1
( SELECT  ...
FROM VIEW1 ) a UNPIVOT ("VALS" FOR cols IN ( .....columns to unpivot.......))
where a.column1='test'
) b ON ( a.id=b.id)
WHEN MATCHED THEN
UPDATE set a.name=b.name
when not matched then
insert (a.id,a.name) values ( b.id,b.name);
This code is giving error : No more data to read from socket error.

But when I am trying
MERGE INTO TABLE1
( SELECT  ...
FROM VIEW1*
where a.column1='test' ) a UNPIVOT ("VALS" FOR cols IN ( .....columns to unpivot.......))
) b ON ( a.id=b.id)
WHEN MATCHED THEN
UPDATE set a.name=b.name
when not matched then
insert (a.id,a.name) values ( b.id,b.name);
It's working properly.

Any idea why I am getting error with code 1?

Edited by: Anupam_Halder on Oct 4, 2012 2:13 PM
  • 1. Re: No more data to read from socket error.
    BillyVerreynne Oracle ACE
    Currently Being Moderated
    You need to look for an Oracle specific error code and message. The error text you have posted does not seem to be an Oracle error.

    The error however could result from an ORA-3113 end-of-file on communication channel.

    This Oracle error means that the Oracle server process servicing your request (executing SQL or PL/SQL code) ran into a fatal error (potentially an Oracle bug). The server process then proceeds with a "crash dump" - writes an error to the database instance's alert log, writes a trace file and then terminiates abnormally.

    It terminates without telling the client and without tearing down the tcp client-server connection. When the client then attempts to use this connection, the socket read fails. No data to read as the socket connection no longer exists.

    But this is speculation - we need to see the actual Oracle error (from the server or from the client driver). And you seem to be using an Oracle client that suppresses Oracle error codes and text. Which places a serious question mark over the actual usability of such client s/w for Oracle client-server.
  • 2. Re: No more data to read from socket error.
    Mr Lonely Newbie
    Currently Being Moderated
    Hi ,

    Sorry I ran that query from SQL Developer.

    When I am running from sql*plus I am getting the following error.


    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 18351
    Session ID: 834 Serial number: 4869
  • 3. Re: No more data to read from socket error.
    Sven W. Guru
    Currently Being Moderated
    Anupam_Halder wrote:
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 18351
    Session ID: 834 Serial number: 4869
    Ask your DBA to check if you have a matching entry in the alert log. Something like an ora-600 error. Sometimes this is the cause for a connection lost issue. This might need a later call to oracle support.
  • 4. Re: No more data to read from socket error.
    Mr Lonely Newbie
    Currently Being Moderated
    Thanks for your help guys. We don't want to raise issue to DBA and Oracle Support as re-writing the query solved the issue.

    Edited by: Anupam_Halder on Oct 5, 2012 5:09 PM

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points