powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
17 сообщений из 17, страница 1 из 1
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33678678
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишу следущий запрос в sqlplus
select isStr, isNum from oracledb.table1 where isStr='41'
выводится следующее

Код: plaintext
1.
2.
3.
 isStr              isNum
-------------- -------------
       41
       41            22


пишу следущий запрос
Код: plaintext
select isStr, isNum from oracledb.table1 where isNum=  ??? ;

что мне нужно всесто вопросов написать? то есть пустое значение типа NUMBER, как в запросе записать?
пробоваk так
Код: plaintext
select isStr, isNum from oracledb.table1 where isNum=  '' ;
или так
Код: plaintext
select isStr, isNum from oracledb.table1 where isNum=  null  ;

но результат пустой, почему так?
В sqlplus выводится
Код: plaintext
 no rows selected 
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33678690
Фотография Andrew IF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33678835
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Код: plaintext
select isStr, isNum from oracledb.table1 where isNum is null
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33681011
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?
Код: plaintext
select isStr, isNum from oracledb.table1 where isNum is null


Спасибо
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33681012
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew IFТОП популярных вопросов 8. Вопрос. Почему не получается сравнение с пустой строкой?

у меня не строковое поле, а поле типа NUMBER..
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33681122
Sergey M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пустая строка в оракле - IS NULL
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #33681236
Фотография Andrew IF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vista-rus Andrew IFТОП популярных вопросов 8. Вопрос. Почему не получается сравнение с пустой строкой?

у меня не строковое поле, а поле типа NUMBER..

Если бы Вы прочитали не только название ссылки, но и содержание и сходили по ссылке в тексте, то узнали бы, что:

Oracle9i SQL Reference
Release 2 (9.2)
Part Number A96540-02
Nulls with Comparison Conditions

To test for nulls, use only the comparison conditions IS NULL and IS NOT NULL. If you use any other condition with nulls and the result depends on the value of the null, then the result is UNKNOWN. Because null represents a lack of data, a null cannot be equal or unequal to any value or to another null.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020818
qwe_dsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос-то не закрыт.
вопрос звучит так
когда, например, в такой процедуре
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare
i number;
begin
select sum(t.pay_sum) into i
from PAYS t
where t.del=0;
end;
/


возвращаемое значение
Код: plsql
1.
sum(t.pay_sum) is null


то возникает
Код: plsql
1.
2.
ORA-01403: no data found
ORA-06512: at line 4


и
Код: plsql
1.
nvl(sum(t.pay_sum),0)

тоже не спасает, ибо оно тоже
Код: plsql
1.
 is null

.
Как это разрулить?
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020822
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странные вещи Вы говорите.

Покажите нормальный скрипт и запуск из-под sqlplus'а.
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020824
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwe_dsa,

Версия оракла, полный скрипт?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SQL> ed
Wrote file afiedt.buf

  1  declare
  2      n number;
  3  begin
  4      select sum(decode(dummy,'X',1)) into n from dual;
  5      dbms_output.put_line('n: '||n);
  6      select sum(decode(dummy,'X',1)) into n from dual where 1=0;
  7      dbms_output.put_line('n: '||n);
  8      select nvl(sum(decode(dummy,'X',1)), 0) into n from dual where 1=0;
  9      dbms_output.put_line('n: '||n);
 10* end;
SQL> /
n: 1
n:
n: 0

PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020825
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, таки запрос другой?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
tst> select nvl(sum(1), 0) from dual where 1=2;

NVL(SUM(1),0)
-------------
            0

tst> select nvl(sum(1), 0) from dual where 1=2 group by dummy;

no rows selected

tst> 
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020829
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwe_dsa
Как это разрулить?


Разрулить exception поможет блок exception .

Или ставьте задачу вразумительнее.
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020838
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед тем как "разрулить" нужно понять, в чем же проблема

Такого поведение в Oracle нет. Т.е. проблема/ошибка где-то совершенно в другом месте. IMHO
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020840
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Слава же уже показал в чём скорее всего.
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020860
qwe_dsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, именно так
Код: plsql
1.
no rows selected

,
Т.е. если я уберу группировку - эксепшн не наступает?
но почему такая разница?
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020865
qwe_dsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm, можно и обработкой эксепшна, но мне так не нравится, когда разнообразные секции эксепшнов разбросаны по всей процедуре. Мою задачу можно решить с помощью курсора, не попадая на этот эксепшн. Вячеслав на примерах точно показал то, что я пытаюсь уточнить.
...
Рейтинг: 0 / 0
Oracle: Пустое значение в поле типа NUMBER, как сделать запрос?
    #40020867
qwe_dsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров
Наверное, таки запрос другой?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
tst> select nvl(sum(1), 0) from dual where 1=2;

NVL(SUM(1),0)
-------------
            0

tst> select nvl(sum(1), 0) from dual where 1=2 group by dummy;

no rows selected

tst> 



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


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