Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> nls_comp

nls_comp

From: Adam <lucy_at_piasta.dhs.org>
Date: Thu, 07 Feb 2002 10:58:51 +0000
Message-ID: <3C625DEB.4010404@piasta.dhs.org>


Hello,

Oracle 8.1.6, AIX 4.3

Parameters: NLS_COMP=ANSI

                                            NLS_SORT=POLISH
Table test (index only on ID column):

SQL> desc test

Name                                      NULL? Type
  ----------------------------------------- -------- ---------------
  ID                                             NOT NULL NUMBER(3)
  data                                     NOT NULL CHAR(10)

SQL> select * from test;

         ID data
---------- ----------

          1  note1
          2  note2



Fragments of code in PRO*C/C++

EXEC SQL BEGIN DECLARE SECTION;
char data[11];
char query[11];
EXEC SQL END DECLARE SECTION; Query 1 - returns record correctly:

EXEC SQL select data into :query from test where data= 'note1';

Query 2 - returns no record :

strcpy (query, "note1 "); /* string complement with spaces */
/* I also tried : strcpy(query, "note1"); */

EXEC SQL select data into :data from test where data= :query;

Query 3 - returns no record :

/* statement reads record from database*/
EXEC SQL select data into :query from test where data= 'note1';

EXEC SQL select data into :data from test where data= :query;

I don't know why queries 2 and 3 don't return a record.

All queries return record correctly when one of the following conditions is met:
a) Database works with NLS_COMP=BINARY
b) Condition in query looks like that:

     EXEC SQL select data into :data from test where NLSSORT(data) = NLSSORT(:query);

Does anyone have any suggestions?

Regards
Adam Bancarewicz Received on Thu Feb 07 2002 - 04:58:51 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US