Troubleshooting > ThirdPartyIssues > Resolving Issues with the Oracle CURSOR_SHARING Parameter

Resolving Issues with the Oracle CURSOR_SHARING Parameter

Article #: Product: Version:

Summary

Oracle uses a parameter named CURSOR_SHARING to share SQL processing memory areas when similar SQL statements are sent to the database. When developing or running a DMExpress job or task that connects to an Oracle database source, you may encounter incorrect output or unexpected behavior if the CURSOR_SHARING parameter is not set to the default value of EXACT.

This issue is caused by Oracle bugs #3128363 and #5553553, which report incorrect data sizes depending on the value of the CURSOR_SHARING parameter.

Symptom

Column information and data may be truncated or otherwise incorrect. This may affect column names and sampled data in the Task Editor, or the output data from the task. Other unexpected behavior may also occur due to data corruption caused by the incorrect data length reported by Oracle.

These symptoms only manifest if the Oracle database is configured with one of the following non-default settings:

CURSOR_SHARING = SIMILAR

CURSOR_SHARING = FORCE

Resolution

To resolve this issue, modify the database configuration to use the default CURSOR_SHARING parameter value of EXACT, as follows:

CURSOR_SHARING = EXACT

The setting can be modified at runtime using the Oracle ALTER SESSION or ALTER SYSTEM commands, and can be set permanently for a database by modifying its initialization parameters in init.ora.

Additional Information

For See
additional information about the CURSOR_SHARING parameter your Oracle documentation
additional information about Oracle bug #3128363 support.oracle.com/epmos/faces/ui/km/BugDisplay.jspx?id=3128363
additional information about Oracle bug #5553553 support.oracle.com/epmos/faces/ui/km/BugDisplay.jspx?id=5553553
Last updated: