Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 is null в O8  [new]
practicant
Member

Откуда:
Сообщений: 1645
когда работала с 9-кой,то всегда использовала эту конструкцию
(table1.clm=:param or :param is null)
т.е необязательный параметр(либо учитывать либо нет),и всегда он работал,
но вот на новом месте работы,на 8-ке я его тут 1-ый раз использовала,и итог не удачный,

извратилась следующим,блого код отрицательным не мб
(table1.clm=:param or nvl(:param ,-1)=-1)

Так в чем подвох,почему обычное is null не пошло?
28 апр 07, 09:06    [4082246]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
А почему ты решил, что оно не пошло?
Запрос вернулд некорректные данные?
Или запрос вывалился с ошибкой?
28 апр 07, 09:08    [4082254]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
Бабичев Сергей
А почему ты решил, что оно не пошло?
Запрос вернул некорректные данные?
Или запрос вывалился с ошибкой?

А, пардон, не обратил внимание на твой пол :)
28 апр 07, 09:09    [4082261]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
practicant
Member

Откуда:
Сообщений: 1645
Бабичев Сергей
А почему ты решил, что оно не пошло?
Запрос вернулд некорректные данные?
Или запрос вывалился с ошибкой?

нет,он мне при заданном параметре вывалил все данные,закомментила or :param is null
запустила выдал по пар-ру

Бабичев Сергей

А, пардон, не обратил внимание на твой пол :)

да,нечего какая разница он,она,
28 апр 07, 09:23    [4082309]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
Небольшой тест-кейс можешь привести, демонстрирующий такое поведение?
Погоняю у себя на 8-ке.
28 апр 07, 09:27    [4082328]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
practicant
Member

Откуда:
Сообщений: 1645
select * from (
select 1 a from dual
union all
select 2 a from dual
union all
select 3 a from dual
union all
select 4 a from dual
union all
select 5 a from dual)
where (a=:p or :p is null)

хотя он у меня в жабе сработал так как надо,а из самописного приложения нет,
28 апр 07, 09:35    [4082360]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Бабичев Сергей
Member

Откуда:
Сообщений: 2498
practicant
хотя он у меня в жабе сработал так как надо,а из самописного приложения нет,
Стало быть дело не в сервере, а в самописанном приложении :)
Лично я бы вообще в SQL*PLUS потестил. Если проблема имееет место быть и в нём, стало быть сервер косячит. В противном случае - клиентское приложение.
28 апр 07, 09:37    [4082369]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
practicant
Member

Откуда:
Сообщений: 1645
Бабичев Сергей
practicant
хотя он у меня в жабе сработал так как надо,а из самописного приложения нет,
Стало быть дело не в сервере, а в самописанном приложении :)
Лично я бы вообще в SQL*PLUS потестил. Если проблема имееет место быть и в нём, стало быть сервер косячит. В противном случае - клиентское приложение.

спасибо)
28 апр 07, 09:43    [4082396]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Dimka9
Member

Откуда: Владивосток
Сообщений: 1851
practicant
or :p is null

может ваша пэ и не пэ вовсе а эр? не буквально, но типа того
28 апр 07, 09:51    [4082429]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
practicant
Member

Откуда:
Сообщений: 1645
Dimka9
practicant
or :p is null

может ваша пэ и не пэ вовсе а эр? не буквально, но типа того

нет она и есть
28 апр 07, 10:03    [4082499]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Sergey_Evdokimov
Member

Откуда: Moscow
Сообщений: 362
Всехда писал на 8-ке
table1.clm=nvl(:param, table1.clm)
- все нормально работаит..
28 апр 07, 10:39    [4082709]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Oleg Ivanov
Member

Откуда: Киев
Сообщений: 289
Sergey_Evdokimov
Всехда писал на 8-ке
table1.clm=nvl(:param, table1.clm)
- все нормально работаит..

Нормально работаит
Пока в table1.clm null'ы не появятся :-)
28 апр 07, 12:28    [4083316]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
practicant
select * from (
select 1 a from dual
union all
select 2 a from dual
union all
select 3 a from dual
union all
select 4 a from dual
union all
select 5 a from dual)
where (a=:p or :p is null)

хотя он у меня в жабе сработал так как надо,а из самописного приложения нет,

1) я бы посмотрел на сервере - что до него доходит из того самописного приложения
2) тесты типа up - хуже некуда (ну, в каждой версии сервера есть в них магидуальные тараканы). Гораздо лучше - пользовать scott.emp и т.п.
28 апр 07, 13:19    [4083586]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
orawish
магидуальные тараканы


Просто интересно, можешь рассказать, что это?

магидуальные тараканы
28 апр 07, 14:13    [4083924]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Oleg Afanasiev
orawish
магидуальные тараканы
Просто интересно, можешь рассказать, что это?
Э... Это Вам слово не расшифровать или Вам повезло никогда не встретиться с магией dual-а? :) Или это просто шутка была?
28 апр 07, 14:20    [4083976]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Oleg Afanasiev
orawish
магидуальные тараканы


Просто интересно, можешь рассказать, что это?
..

Рассказывать не буду - покажу парочку (из трех запросов - в первых двух)
SQL> with t as (select
  2    1 A ,1 B from dual)
  3  select grouping(a),a ,grouping(b),b
  4    from t group by grouping sets((a,b),a,b,());

GROUPING(A)          A GROUPING(B)          B
----------- ---------- ----------- ----------
          0          1           0          1
          0          1           0          1
          0          1           0          1
          1          1           1          1

SQL> 
SQL> with t as (select --+ materialize
  2    1 A ,1 B from dual)
  3  select grouping(a),a ,grouping(b),b
  4    from t group by grouping sets((a,b),a,b,());

GROUPING(A)          A GROUPING(B)          B
----------- ---------- ----------- ----------
          0          1           0          1
          0          1           0          1
          0          1           0          1
          1                      1

SQL> 
SQL> with t as (select
  2    1 A ,count(*) B from dual)
  3  select grouping(a),a ,grouping(b),b
  4    from t group by grouping sets((a,b),a,b,());

GROUPING(A)          A GROUPING(B)          B
----------- ---------- ----------- ----------
          0          1           0          1
          0          1           1
          1                      0          1
          1                      1
28 апр 07, 14:35    [4084053]     Ответить | Цитировать Сообщить модератору
 Re: is null в O8  [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3742
Jannny
Или это просто шутка была?


или одно из двух.

orawish попадёт в историю, как изобретатель нового слова.
28 апр 07, 14:54    [4084197]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить