powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
5 сообщений из 5, страница 1 из 1
Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
    #35621071
Ghola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

В общем случае, требуется стандартными средствами в запросе SELECT (без пользовательских процедур и функций) вынуть NUMERIC(m,l) из его внутреннего представления хранимого в виде CHAR(n).

Например некое поле CHAR(6) в шестнадцатеричном виде выглядит как 0x0037500000F, что соответствует 3.75 типа DECIMAL(11,7). Требуется в запросе из CHAR(6) получить результат типа DECIMAL(11,7).

Возможно такое в DB2? Плиз...
...
Рейтинг: 0 / 0
Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
    #35625424
BuryCommoner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT (INT(SUBSTR(name, 1, 3)) + (INT(SUBSTR(name, 4, 7)) / 10000000)) AS dec_name FROM table;
Сам, правда, не проверял.
...
Рейтинг: 0 / 0
Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
    #35625754
Ghola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, большое спасибо за ответ!
Но, увы, предложеное Вами решение не годится.
Из описания функции INTINT or INTEGER
The INTEGER or INT function converts either a number or a valid character value into an
integer. The character input can have leading and/or trailing blanks, and a sign indictor, but it
can not contain a decimal point. Numeric decimal input works just fine.К великому сожалению, в CHAR'ах лежат отнюдь не "valid characters" - а "крякозябы". Это НЕ коды символов, а части числа NUMERIC в том виде, в котором оно хранится в памяти. Если их распечатать, то будет мусор.
...
Рейтинг: 0 / 0
Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
    #35626017
Ghola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, надо танцевать от функции HEX...
Рекомендую DB2 V9.5 SQL Cookbook (1403K)
Непонятно правда, что означает байт 0x0F в конце. Вероятно, это знак, но как его обрабатывать...
...
Рейтинг: 0 / 0
Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
    #35639590
Ghola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем пока вот так сделал:
Код: plaintext
1.
2.
3.
4.
5.
SELECT ...
	CAST(DEC(HEX(SUBSTRING(BAL2,  1 , 7 )))/ 10  AS DECIMAL( 15 , 0 )) BAL00, 
	...
	CAST(DEC(HEX(SUBSTRING(RAT2,  1 , 5 )))/ 1000000  AS DECIMAL( 11 , 7 )) RAT00, 
	...
FROM XXX
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Получить NUMERIC из его внутреннего представления хранимого в виде CHAR(n)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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