ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
Posted: Tue 04 Aug 2020 07:32
Hi,
I'm trying to implement Oracle text for searching full text on some tables, and after some time whole web application hangs with exception.:
Message:
Devart.Data.Oracle.OracleException : ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
Stack Trace:
DbConnectionBase.Open()
OracleConnection.Open()
cv.Open()
DbConnection.OpenAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
Actual query that I think is responsible for such crash looks like that:
var customersByNameQueryable = context.Persons.FromSqlRaw("SELECT c.* FROM \"Persons\" c WHERE CONTAINS(c.\"FullName\", :p ,1)>0", p);
Before web application crashes, log file also contain such entries:
ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation
ORA-06512: at "CTXSYS.TEXTOPTSTATS", line 46
ORA-06512: at line 6 Devart.Data.Oracle.OracleException (0x80004005): ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation
ORA-06512: at "CTXSYS.TEXTOPTSTATS", line 46
ORA-06512: at line 6
at Devart.Data.Oracle.dl.a(au A_0, Int32 A_1)
at Devart.Data.Oracle.dl.a(Int32 A_0, bt A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.Entity.aj.a(CommandBehavior A_0)
at Devart.Common.Entity.cu.d(CommandBehavior A_0)
at Devart.Data.Oracle.Entity.aj.b(CommandBehavior A_0)
at System.Data.Common.DbCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
ORA-01013: user requested cancel of current operation Devart.Data.Oracle.OracleException (0x80004005): ORA-01013: user requested cancel of current operation
at Devart.Data.Oracle.dl.a(au A_0, Int32 A_1)
at Devart.Data.Oracle.dl.a(Int32 A_0, bt A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.Entity.aj.a(CommandBehavior A_0)
at Devart.Common.Entity.cu.d(CommandBehavior A_0)
at Devart.Data.Oracle.Entity.aj.b(CommandBehavior A_0)
at System.Data.Common.DbCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
I'm trying to implement Oracle text for searching full text on some tables, and after some time whole web application hangs with exception.:
Message:
Devart.Data.Oracle.OracleException : ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
Stack Trace:
DbConnectionBase.Open()
OracleConnection.Open()
cv.Open()
DbConnection.OpenAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
Actual query that I think is responsible for such crash looks like that:
var customersByNameQueryable = context.Persons.FromSqlRaw("SELECT c.* FROM \"Persons\" c WHERE CONTAINS(c.\"FullName\", :p ,1)>0", p);
Before web application crashes, log file also contain such entries:
ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation
ORA-06512: at "CTXSYS.TEXTOPTSTATS", line 46
ORA-06512: at line 6 Devart.Data.Oracle.OracleException (0x80004005): ORA-00604: error occurred at recursive SQL level 1
ORA-01013: user requested cancel of current operation
ORA-06512: at "CTXSYS.TEXTOPTSTATS", line 46
ORA-06512: at line 6
at Devart.Data.Oracle.dl.a(au A_0, Int32 A_1)
at Devart.Data.Oracle.dl.a(Int32 A_0, bt A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.Entity.aj.a(CommandBehavior A_0)
at Devart.Common.Entity.cu.d(CommandBehavior A_0)
at Devart.Data.Oracle.Entity.aj.b(CommandBehavior A_0)
at System.Data.Common.DbCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
ORA-01013: user requested cancel of current operation Devart.Data.Oracle.OracleException (0x80004005): ORA-01013: user requested cancel of current operation
at Devart.Data.Oracle.dl.a(au A_0, Int32 A_1)
at Devart.Data.Oracle.dl.a(Int32 A_0, bt A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.Entity.aj.a(CommandBehavior A_0)
at Devart.Common.Entity.cu.d(CommandBehavior A_0)
at Devart.Data.Oracle.Entity.aj.b(CommandBehavior A_0)
at System.Data.Common.DbCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)