J'ai une table appelée MEDECIN
avec 2 colonnes comme suit:Pourquoi la clause WHERE dans la base de données Oracle XE ne fonctionne pas lors de la comparaison avec une chaîne?
SQL> DESC MEDECIN; Name Null? Type ----------------------------------------- -------- ---------------------------- NUM_MED NOT NULL NUMBER(4) SPECIALITE NOT NULL NVARCHAR2(13)
et il contient 32 lignes, voici son contenu:
SQL> SELECT * FROM MEDECIN; NUM_MED SPECIALITE ---------- ---------------------------------------------------- 4 Orthopédiste 7 Cardiologue 8 Cardiologue 10 Cardiologue 19 Traumatologue 24 Orthopédiste 26 Orthopédiste 27 Orthopédiste 31 Anesthésiste 34 Pneumologue 50 Pneumologue 53 Traumatologue 54 Pneumologue 64 Radiologue 80 Cardiologue 82 Orthopédiste 85 Anesthésiste 88 Cardiologue 89 Radiologue 99 Anesthésiste 113 Pneumologue 114 Traumatologue 122 Pneumologue 126 Radiologue 135 Anesthésiste 140 Cardiologue 141 Traumatologue 144 Radiologue 152 Cardiologue 179 Anesthésiste 180 Cardiologue 196 Traumatologue 32 rows selected.
Le problème est que quand j'exécute la demande SELECT * FROM MEDECIN WHERE SPECIALITE = 'Cardiologue';
I obtenez no rows selected
! Comment cela peut-il arriver? Comme vous pouvez le voir, il y a beaucoup de lignes où SPECIALITE = 'Cardiologue'
.
Peut être que vous pouvez trouver quelque chose de réponse ici: http://stackoverflow.com/questions/4401043/oracle-text-will-not-work-with-nvarchar2-what -else-could-be-unavailable – MaxXx1313
Peut-être qu'il y a des espaces de fin. Est-ce que 'trim (SPECIALITE) = 'Cardiologue'' fonctionne? –
Utilisez 'TRIM' ou' LIKE'. –