Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Как преобразовать число в форматную строку?  [new]
alapt
Member

Откуда: Подольск
Сообщений: 38
Здравствуйте.

Мне нужна функция, которая преобразовывала бы число в строку и дополняла ее до 10 символов слева нулями. Пишу:

create function db2admin.NumDoc(a integer)
returns char(10)
language sql
begin atomic
declare s1 char(10);
set s1 = char(a);
while (length(s1)<10) do
set s1 = concat('0', s1);
end while;
return s1;
end
@

После этого запрос
Select db2admin.NumDoc(3) from sysibm.sysdummy1
@

возвращает 3, хотя по моему мнению должно быть 0000000003
Что не так?
11 апр 12, 06:39    [12396939]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать число в форматную строку?  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Здравствуйте.
alapt
Мне нужна функция, которая преобразовывала бы число в строку и дополняла ее до 10 символов слева нулями.
digits(dec(3, 10))
alapt
Пишу:
...
Что не так?
select length(c) len, '*'||c||'*' str
from table(values cast(3 as char(10))) t(c)

LEN STR
----------- ------------
10 *3 *
11 апр 12, 09:31    [12397176]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать число в форматную строку?  [new]
alapt
Member

Откуда: Подольск
Сообщений: 38
Mark Barinstein
Здравствуйте.
alapt
Мне нужна функция, которая преобразовывала бы число в строку и дополняла ее до 10 символов слева нулями.
digits(dec(3, 10))


Спасибо, работает.
11 апр 12, 10:38    [12397468]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить