Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Баг или фича? / 7 сообщений из 7, страница 1 из 1
20.10.2016, 12:20:01
    #39330508
ДакДакГо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баг или фича?
Почему это работает?
Код: plsql
1.
2.
3.
select *
  from dual
 where dummy ^=+ '1'
...
Рейтинг: 0 / 0
20.10.2016, 12:24:00
    #39330510
Баг или фича?
ДакДакГо,
А почему оно не должно работать?
Вначале выполняется унарный плюс, соответственно, твоя '1' неявно преобразуется в число.
Затем выполняется сравнение и полученное число +1 преобразуется (опять же - неявно) в строку .
Сравнение строки со строкой на неравенство выдает TRUE, строка из dual возвращается в итоговую выборку.

В каком из шагов, по твоему, должен был случится "взрыв"?
...
Рейтинг: 0 / 0
20.10.2016, 12:32:04
    #39330515
ДакДакГо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баг или фича?
Добрый Э - Эх,

А эта строка тоже неявно преобразуется в чисто?
Код: plsql
1.
2.
3.
select *
  from dual
 where dummy >=+ 'X'



Почему не выполняется унарный минус? Где можно почитать про унарные операции именно применительно к СУБД Oracle? Не поделишься ссылкой, сам ничего в упор не вижу.
...
Рейтинг: 0 / 0
20.10.2016, 12:33:20
    #39330519
Баг или фича?
Добрый Э - ЭхЗатем выполняется сравнение и полученное число +1 преобразуется (опять же - неявно) в строкус какой стати?
...
Рейтинг: 0 / 0
20.10.2016, 12:37:05
    #39330523
Баг или фича?
Полагаю, что унарный плюс просто игнорируется на уровне парса.
...
Рейтинг: 0 / 0
20.10.2016, 12:38:51
    #39330525
AlexFF__|
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баг или фича?
ДакДакГо,

Ничего тут в число не преобразуется, иначе была бы ошибка 01722.
Считай это фичей, оптимизатор преобразовывает все это в "DUMMY"<>'1'.
...
Рейтинг: 0 / 0
20.10.2016, 12:47:58
    #39330531
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Баг или фича?
AlexFF__|ДакДакГо,

Ничего тут в число не преобразуется, иначе была бы ошибка 01722.
Считай это фичей, оптимизатор преобразовывает все это в "DUMMY"<>'1'.

кстати, баян 11181112
;)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Баг или фича? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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