2010-09-19 2 views
0

Env:question de l'équation NVARCHAR2 dans Oracle 10g

Oracle version: Release 10.2.0.1.0 serveur: Windows XP

Langue oracle:

select userenv('language') from dual; 

Résultat:
CHINESE_CHINA.AL32UTF8

la structure de la table:

PARTY_ID NVARCHAR2 (50)
PARTY_TYPE NVARCHAR2 (50)

Les données du tableau:

PARTY_ID | PARTY_TYPE 
---------+----------- 
BEST  | C  
WILL  | C 

SQL1:

SELECT * FROM cc_party 
WHERE party_type = 'C' 

Résultat:

rien

SQL1:

SELECT * FROM cc_party 
WHERE party_type = 'C' or party_type = 'C' 

Résultat:

PARTY_ID | PARTY_TYPE 
---------+----------- 
BEST  | C  
WILL  | C 

Question:

Pourquoi je ne peux pas sélectionner des données par party_type = 'C' (SQL1)? Y a-t-il des choses spéciales à propos de NVARCHAR2?

Si je mets à jour la clause where à party_type = 'C' or party_type = 'C' (SQL2), je peux obtenir le résultat. Cela me rend confus. Je veux savoir pourquoi le résultat vient quand j'ajouté ou article.

+1

sont ceux des 'mêmes ou différents C' C de? –

+1

Aussi, pourquoi avez-vous fait ce Wiki de la communauté? Ce n'est pas le genre de question qui convient à CW. – APC

+1

SELECT DUMP (party_type) FROM cc_party vous montrera la structure interne de la chaîne. Ma conjecture est que la colonne a un caractère «exotique» qui ressemble à un «C». Mais vous pouvez également obtenir des effets bizarres avec des index fonctionnels. –

Répondre

3

Essayez, et me dire le résultat

SELECT * FROM cc_party OU TRIM (party_type) = 'C'

+0

Si j'utilise trim avec party_type, je peux obtenir le résultat. – Sailing