64-Bit Libsqora, Sqlbindparameter() SQL_C_SLONG Interprets Value As Long Instead Of Int (Doc ID 1106895.1)

Last updated on JULY 05, 2017

Applies to:

Oracle ODBC Driver - Version: 10.2.0.4 to 11.2.0.1 - Release: 10.2 to 11.2
Information in this document applies to any platform.

Symptoms

Encountering an issue when using SQL_C_SLONG types on 64-bit machines.

The SQL_C_SLONG is supposed to map to a SQLINTEGER value, which is always 32-bit, even on 64-bit platforms.
However in 64-bit libsqora (Instant Client ODBC 10.2.0.4, 11.2.0.1),  SQLBindParameter() with SQL_C_SLONG seems to interpret the value as a "long" (which is 64-bit on many 64-bit UNIX platforms) instead of a SQLINTEGER (which is an "int" and 32-bit on most platforms).
The problem is particularly evident on big-endian platforms like Solaris SPARC 64-bit.

Cause

Sign In with your My Oracle Support account

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

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms