ORA-01003: no statement parsed error on executing REVOKE SELECT statement

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for universal data access
Post Reply
anatoli
Posts: 0
Joined: Wed 14 Jun 2017 17:40

ORA-01003: no statement parsed error on executing REVOKE SELECT statement

Post by anatoli » Tue 14 Apr 2020 20:59

There seems to be a bug in Devart.Data.Universal.Oracle provider (direct mode). The problem occurs when executing REVOKE SELECT statement, as for instance, in the following sample script:

Code: Select all

CREATE USER PDUSER IDENTIFIED BY secret123;
CREATE TABLE PDTABLE (i int);
GRANT SELECT ON PDTABLE TO PDUSER;
REVOKE SELECT ON PDTABLE FROM PDUSER;   --< ORA-01003: no statement 
DROP USER PDUSER CASCADE;               -- cleanup statements
DROP TABLE PDTABLE;
This script can be successfully executed with some Oracle client application, such as Oracle SQL Developer. But executing this sequence of SQL commands with Oracle provider for dotConnect universal results in the following exception thrown after “REVOKE SELECT ON PDTABLE FROM PDUSER” command:

Code: Select all

---> Devart.Data.Universal.UniException (0x80004005): ORA-01003: no statement parsed 
---> Devart.Data.Oracle.OracleException (0x80004005): ORA-01003: no statement parsed
   at Devart.Data.Oracle.dh.a(em A_0, Int32 A_1)
   at Devart.Data.Oracle.dh.Execute(Int32 OQQ0OCQOQ0, c6 OQ00QCQOQ0)
   at Devart.Data.Oracle.cu.a(CommandBehavior A_0, IDisposable A_1, Int32 A_2, Int32 A_3, Boolean A_4)
   at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
   at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at Devart.Data.Universal.UniCommand.a(CommandBehavior A_0, IDisposable A_1, Int32 A_2, Int32 A_3, Boolean A_4)
   at Devart.Data.Universal.UniCommand.a(CommandBehavior A_0, IDisposable A_1, Int32 A_2, Int32 A_3, Boolean A_4)
   at Devart.Data.Universal.UniCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
   at Devart.Common.DbCommandBase.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
   at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
   at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
Currently, we are using dotConnect universal 3.80.1967, but I have also tried 3.80.2109, which seems to be having the same problem.

Shalex
Site Admin
Posts: 8971
Joined: Thu 14 Aug 2008 12:44

Re: ORA-01003: no statement parsed error on executing REVOKE SELECT statement

Post by Shalex » Wed 15 Apr 2020 19:36

We have reproduced the issue and are investigating it. We will notify you about the result.

Shalex
Site Admin
Posts: 8971
Joined: Thu 14 Aug 2008 12:44

Re: ORA-01003: no statement parsed error on executing REVOKE SELECT statement

Post by Shalex » Sat 20 Jun 2020 18:57

The bug with executing REVOKE statement via UniScript in the Direct mode is fixed (Oracle) in v3.80.2163: viewtopic.php?f=4&t=41281.

Post Reply