powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL and comparison strings don't ignore case
7 сообщений из 7, страница 1 из 1
SQL and comparison strings don't ignore case
    #39528628
Jafa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет,
объясните мне, почему при сравнении один запрос учитывает регистр строк, а другой нет? Почему Пример 1 считает кол. без UPPER, а в Примере 3 нужно использовать UPPER? Странно что Пример 4 анологичен Примеру 1, но без UPPER(owner) не видит строк

Пример 1, к условию component_id = 'rdbms' подходит 9055 строк:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT COUNT(*)
FROM v$diag_alert_ext
WHERE component_id = 'rdbms'
AND message_text LIKE '%R%';
/*
  COUNT(*)
----------
      9055
*/



Пример 2, в этой же БД к условию component_id = 'rdbms' подходит 0 строк:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT COUNT(*)
FROM v$diag_alert_ext
WHERE component_id = 'rdbms';
/*
  COUNT(*)
----------
         0
*/



Пример 3, к условие UPPER(component_id) = UPPER('rdbms') подходит 9055
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT COUNT(*)
FROM v$diag_alert_ext
WHERE UPPER(component_id) = UPPER('rdbms');
/*
  COUNT(*)
----------
     11397
*/



Пример 4
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT COUNT(*)
FROM all_objects a
WHERE a.owner = 'sys'
AND a.object_name LIKE '%R%';
/*
  COUNT(*)
----------
         0
*/
...
Рейтинг: 0 / 0
SQL and comparison strings don't ignore case
    #39528643
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Jafa,

v$diag_alert_ext - косячная сама по себе(там кривая x$-функция ) я зачастую просто материализую всё из неё и только потом фильтрую
...
Рейтинг: 0 / 0
SQL and comparison strings don't ignore case
    #39528644
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу ваш v$...

А в ALL_OBJECTS

Код: plsql
1.
a.owner = 'SYS'



есть результат.

Код: plsql
1.
a.owner = 'sys'



нет результата (0).
...
Рейтинг: 0 / 0
SQL and comparison strings don't ignore case
    #39528649
Jafa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderJafa,

v$diag_alert_ext - косячная сама по себе(там кривая x$-функция ) я зачастую просто материализую всё из неё и только потом фильтрую
я уже тоже об этом подумал, наверное эта въюха не официальная (не задокументированная).
Или как тут говорится - "The v$diag_alert_ext table is under-documented in Oracle and there are no notes about v$diag_alert_ext on MOSC."
...
Рейтинг: 0 / 0
SQL and comparison strings don't ignore case
    #39528652
Jafa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,
v$diag_alert_ext лежит в SYS
на Пример 4 можете особо внимание не тратить, он как аналог Примера 1 и показывает что есть разница 'SYS' и 'sys'
...
Рейтинг: 0 / 0
SQL and comparison strings don't ignore case
    #39528661
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Jafa,

Я немножко поленился просто описать ее косяк: эта вьюха работает нормально, если нет предикатов, но когда добавляешь какой-нибудь предикат, который использует fixed table fixed index с еще предикатами, то все ломается
...
Рейтинг: 0 / 0
SQL and comparison strings don't ignore case
    #39528686
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL and comparison strings don't ignore case
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]