Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / i5/OS V5R3 NULL значение функции DIGITS / 6 сообщений из 6, страница 1 из 1
25.07.2007, 12:15
    #34682581
man_555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i5/OS V5R3 NULL значение функции DIGITS
Запрос, приведённый ниже, возвращает NULL. Можно ли с этим бороться?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select
    case 
        when digits ('ddd') is null then  1 
        else  0 
    end
from 
    sysibm.SYSDUMMY1 
...
Рейтинг: 0 / 0
30.07.2007, 10:16
    #34691710
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i5/OS V5R3 NULL значение функции DIGITS
Может я не совсем в тему (i5/OS V5R3 не юзал), но на 9.1 (Windows) все работает, и только в таком виде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select
    case 
        when DIGITS(CAST(NULL AS INTEGER)) is null then  1 
        else  0 
    end
from 
    sysibm.SYSDUMMY1;
DIGITS может иметь параметры только: SMALLINT, INTEGER, BIGINT or DECIMAL
здесь подсказки
Чтобы не получить NULL я использую также VALUE, COALESCE, но в данном случае, очевидно, нужен только признак.
...
Рейтинг: 0 / 0
31.07.2007, 10:11
    #34694669
man_555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i5/OS V5R3 NULL значение функции DIGITS
Конкретно приведённый запрос сработал, но если в текстовом поле попадутся не цифры, то на cast'е вылетит ошибка. IMHO разумно. Неразумно, когда DIGITS принимая только численный тип не ругается на на всё остальное, а просто возвращает NULL, который невозможно (?) обработать.
...
Рейтинг: 0 / 0
31.07.2007, 10:41
    #34694742
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i5/OS V5R3 NULL значение функции DIGITS
man_555Конкретно приведённый запрос сработал, но если в текстовом поле попадутся не цифры, то на cast'е вылетит ошибка. IMHO разумно. Неразумно, когда DIGITS принимая только численный тип не ругается на на всё остальное, а просто возвращает NULL, который невозможно (?) обработать.
Вероятно разная реализация функции DIGITS на разных системах, хотя странно, впрочем воздержусь от выводов и комментариев. У меня в винде выдает ошибку, а не NULL:
Код: plaintext
1.
SQL0440N  Не найдено авторизованной подпрограммы "DIGITS" типа "FUNCTION" с 
совместимыми аргументами.  SQLSTATE= 42884 
Если другого решения нет, то придется самому проверять в своей функции, другого ничего в голову не приходит. Т.е что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
select
    case 
        when checkdigits('ddd') =  0  then  1 
        else  0 
    end
from 
    sysibm.SYSDUMMY1
...
Рейтинг: 0 / 0
31.07.2007, 11:09
    #34694824
man_555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i5/OS V5R3 NULL значение функции DIGITS
А такой функции как checkdigits на моей системе, похоже, вообще нет.
Вот это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select
    case 
        when checkdigits('ddd') =  0  then  1 
        else  0 
    end
from 
    sysibm.SYSDUMMY1

у меня тоже выкидывает ошибку

>[Error] Script lines: 1-8 --------------------------
[IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0204 - CHECKDIGITS in *LIBL type *N not found.

А вот такое

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select
    case 
        when DIGITS(CAST('aaa' AS INTEGER)) is null then  1 
        else  0 
    end
from 
    sysibm.SYSDUMMY1

возвращает

00001
--------
(null)

хотя, если заменить 'aaa' на NULL, то вернёт 1 как полагается
...
Рейтинг: 0 / 0
08.08.2007, 08:47
    #34712717
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i5/OS V5R3 NULL значение функции DIGITS
man_555А такой функции как checkdigits на моей системе, похоже, вообще нет.

Это надо самому UDF написать и все в нем разрулить.
Главное не забыть NULL CALL добавить в описание функции.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / i5/OS V5R3 NULL значение функции DIGITS / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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