Page 1 of 1

ORA-03113 when re-executing prepared statement after commit

Posted: Wed 17 Jul 2019 12:51
by azabluda
Hello,

C++ Builder XE
ODAC 10.4.10
Oracle 11.2.0.1

Code: Select all

//---------------------------------------------------------------------------
void __fastcall TForm1::testBTNClick(TObject* Sender)
{
    // Connect to DB
    boost::scoped_ptr<TOraSession> session(new TOraSession(0));
    session->Server = ...;
    session->Username = ...;
    session->Password = ...;
    session->Options->Direct = true;
    session->Connect();

    // Prepare statement
    boost::scoped_ptr<TOraQuery> query(new TOraQuery(0));
    query->Session = session.get();
    query->SQL->Text = "savepoint hello";
    query->Prepare();

    // Execute and commit
    query->Execute();
    session->Commit();

    // Execute again
    query->Execute(); // << ORA-03113: end-of-file on communication channel
}
//---------------------------------------------------------------------------
This code works fine
- in OCI mode (Direct = false)
- with ODAC 9.7.28 (and below, both Direct and OCI)

Unfortunately this bug is a show stopper for our customers who are upgrading to Oracle 18c and thus require ODAC 10+. Thank you in advance for a quick response!

Alexander

Re: ORA-03113 when re-executing prepared statement after commit

Posted: Thu 18 Jul 2019 06:44
by MaximG
Thank you for the information. We have reproduced the issue and will investigate its origin. We will inform you about the results shortly.

Re: ORA-03113 when re-executing prepared statement after commit

Posted: Fri 19 Jul 2019 08:58
by MaximG
We've reproduced the issue and fixed it. The fix will be included in the new ODAC build, which we're planning to release next week.