Почему Doctrine и Oracle не уважают равенство в строках?

#oracle #symfony #doctrine

#Oracle #симфония #доктрина

Вопрос:

У меня странный случай. Я запускаю приложение Symfony с базой данных Oracle 11, подключенной с помощью Doctrine.

Моя проблема в том, что когда я запускаю эти два разных запроса:

 SELECT * FROM user WHERE email = 'charles.robinson@email.com'
SELECT * FROM user WHERE email = 'charlesrobinson@email.com'
  

Я получаю тот же результат, запись с charles.robinson@email.com пользователем. Похоже, что ни Оракул, ни Доктрина не знают о точке.

Поскольку у меня нет прямого доступа к базе данных, я запускаю их с помощью команды:

 php bin/console doctrine:query:sql
  

Комментарии:

1. Я думаю, что это не ошибка, потому что, например, в gmail charles.robinson@email.com = charlesrobinson@email.com поставщики электронной почты игнорируют точку, это просто визуальный разделитель

Ответ №1:

Это была проблема с конфигурацией на стороне ORACLE. Значение NLS_COMP допускало такого рода результаты.