Error ORA-03111 break received on communication channel

24,923

Solution 1

In my case (getting the exception on connection.Open()) the problem turned out to be that the Oracle server was too old a version to use the Managed Provider.

According to: https://community.oracle.com/thread/2528641

ODP.NET, Managed Driver supports connecting to Oracle DB server 10.2 or higher. It does not support DB 10.1.

Solution 2

In my case the reason was that input to the NVL function returned more than one row - the blabla subquery in the following:

PROCEDURE my_procedure(c_my_cursor OUT SYS_REFCURSOR) IS
  p_my_cursor SYS_REFCURSOR;
BEGIN
  OPEN p_my_cursor FOR
  select nvl((select blabla), 0) my_column from my_table;
  c_my_cursor := p_my_cursor;
END smiley_alle_jurenheder;

Interestingly enough, when running the query directly in SQL Developer, the correct error code is returned - "ORA-01427: single-row subquery returns more than one row".

Solution 3

My problem was a missing column on the database. It was created in another environment. It was hard to find the real problem cause this error dont tell us nothing.

While debugging in other computer, the real problem appeared.

Hope this help someone.

Solution 4

Since this is the first Google hit when searching for this error, guess I'll add my solution as well. This error seems to crop up for all sorts of reasons which makes it really hard to troubleshoot.

I ran into it while building an application which runs on both MSSQL and Oracle. Upon startup it creates a simple table. To prevent errors, any existing table is dropped. This multi-line, multi-command script runs fine on MSSQL but its Oracle equivalent kept returning this error.

I finally solved it when I ran the commands (drop, create table, create sequence) one by one. Also, look out for the semicolon (;) as leaving that in a DDL statement also gave the ORA-03111 error.

In retrospect, I knew that running multiple commands in one go was troublesome in Oracle, but this error is just plain useless to those not initated in Oracle's arcane ways.

Share:
24,923
Hayu Rahiza
Author by

Hayu Rahiza

Updated on October 02, 2021

Comments

  • Hayu Rahiza
    Hayu Rahiza over 2 years

    I've got error ORA-03111 Break received on communication channel after change from oracle 11g to oracle 10g R1 at different server.

    I use DotNet framework 4.5.

    I have google around but didnt find any solution.

  • Hayu Rahiza
    Hayu Rahiza almost 9 years
    I think the same thing too. Thanks.
  • neolei
    neolei over 4 years
    Similiar cause while I'm using Oracle.ManagedDataAccess, my case is a typo in column name.
  • Avid Programmer
    Avid Programmer over 4 years
    you are not giving a solution to the problem just elaborated the theory of something.
  • Baso
    Baso over 3 years
    Upvote for the semicolon(;) that was my issue. Thanks.