4 Replies Latest reply: Oct 5, 2012 6:39 AM by Mr Lonely RSS

    No more data to read from socket error.

    Mr Lonely
      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.
          Billy~Verreynne
          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
            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.
              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
                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