My Oracle Support Banner

ODPU Cause Cursor Leak When Issuing JOIN Query in Loop with POOLING=false (Doc ID 2995512.1)

Last updated on JANUARY 04, 2024

Applies to:

Oracle Data Provider for .NET - Version 19.3.0.0.0 to 19.13.0.0.0 [Release 19.0 to 12.1]
Oracle Data Provider for .NET - Version 21.3.0.0.0 to 21.3.0.0.0 [Release 12.1]
Microsoft Windows x64 (64-bit)
Microsoft Windows (32-bit)

Symptoms

ODP.NET unmanaged driver causes the cursor leak when issuing a Oracle type JOIN query like below in a loop, and then eventually it leads to ORA-1000.

Executing following SQL,

SELECT * FROM TABLE1, TABLE2
WHERE TESTCD = TESTCD2 AND TESTCD = <Literal Number>

By reviewing the SQL trace, we can confirm that the ODPU is executing the following internal SQL in relation to above SQL:

SELECT * FROM TABLE1
SELECT * FROM TABLE2

These are as the internal SQL from ODPU, and right. because ODPU needs to describe the tables.

However, these internal SQL(cursor) are not closed by ODPU with POOLING=false;

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.