Feedback
Did this article resolve your question/issue?

   

Article

SQLGetData returns an incorrect result with the Oracle ODBC driver when the select statement contains a CASE expression

Information

 
TitleSQLGetData returns an incorrect result with the Oracle ODBC driver when the select statement contains a CASE expression
URL NameSQLGetData-returns-an-incorrect-result-with-the-Oracle-ODBC-driver-when-the-select-statement-contains-a-CASE-expression
Article Number000185617
EnvironmentProduct: Connect for ODBC Oracle Wire Protocol driver
Version: 07.15.0256
OS: all supported platforms
Database: Oracle
Application: all supported applications
Question/Problem Description
SQLGetData returns an incorrect result with the Oracle ODBC driver when the select statement contains a CASE expression.
Steps to Reproduce
Clarifying Information
1. Set the value of the Oracle CURSOR_SHARING parameter to 'FORCE' (the value that is set can be checked with calling "SELECT * FROM v$parameter WHERE name like 'cursor_sharing'"):

alter system set cursor_sharing='FORCE'

2. Execute the following statements:

CREATE TABLE TESTC (TEST_CHAR varchar(30)) 
SELECT case when TEST_CHAR = 'N' then null else 'YES' END as WEB_SUP FROM TESTC


3. Do the following calls:

SQLExecDirect(SELECT case when TEST_CHAR = 'N' then null else 'YES' END as WEB_SUP FROM TESTC)
SQLDescribeCol
SQLFetch
SQLGetData


In an ODBC trace, the following is seen:

EXIT SQLGetData with return code 0 (SQL_SUCCESS)
HSTMT 0x000000000073C500
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x000000000021BC80 32 "YES\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0"
SQLLEN 300
SQLLEN * 0x000000000021C040 (32)


"YES" needs to be returned instead of "YES\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0".
Error Message
Defect NumberDefect 38269
Enhancement Number
Cause
Resolution
Fixed in hot fix 07.16.0264. 
Refer to "Connect and Connect64 for ODBC hot fix download and install instructions" for instructions on how to download and install the hot fix.
Workaround
Notes
Last Modified Date6/2/2016 8:59 AM
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.