У меня есть таблица под названием MEDECIN
с 2 колонками следующим образом:Почему предложение WHERE в базе данных Oracle XE не работает при сравнении со строкой?
SQL> DESC MEDECIN; Name Null? Type ----------------------------------------- -------- ---------------------------- NUM_MED NOT NULL NUMBER(4) SPECIALITE NOT NULL NVARCHAR2(13)
И он содержит 32 строки, вот его содержание:
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.
Проблема заключается в том, что, когда я выполняю запрос SELECT * FROM MEDECIN WHERE SPECIALITE = 'Cardiologue';
I получите no rows selected
! Как это может произойти? Как вы можете видеть, есть много строк, где SPECIALITE = 'Cardiologue'
.
Может быть, вы можете узнать ответ что-то здесь: http://stackoverflow.com/questions/4401043/oracle-text-will-not-work-with-nvarchar2-what -else-may-be-unavailable – MaxXx1313
Возможно, есть некоторые завершающие пробелы. Работает ли 'trim (SPECIALITE) = 'Cardiologue''? –
Либо используйте 'TRIM' или' LIKE'. –