powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как в функцию chr поместить шестнадцатиричное число?
5 сообщений из 5, страница 1 из 1
как в функцию chr поместить шестнадцатиричное число?
    #32129986
roboforce
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я напишу
select shr(192) from dual - то получу букву 'А'.
но у меня вместо 192 - имеется литерал 'C0',
то есть строчка, которая представляет число в 16-ричной системе.
как мне шестнадцатиричные числа, записаные, однако, сторокой
преобразовать в символы?
...
Рейтинг: 0 / 0
как в функцию chr поместить шестнадцатиричное число?
    #32130005
[IPT]-Said
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообщето не припоминаю в оракле, зарезервированную функцию
делающую hex -->decimal. Поэтому могу предложить свой вариант

FUNCTION HexToNum (Chis IN VARCHAR2) RETURN NUMBER
IS
cl NUMBER := 0;
cr NUMBER := 0;
kod NUMBER := 0;
kod_l VARCHAR2(1);
kod_r VARCHAR2(1);
BEGIN
kod_l := SUBSTR(Chis, 1, 1);
kod_r := SUBSTR(Chis, 2, 1);
IF kod_l >= '0' AND kod_l <= '9' THEN
cl := TO_NUMBER(kod_l);
ELSIF kod_l = 'A' THEN
cl := 10;
ELSIF kod_l = 'B' THEN
cl := 11;
ELSIF kod_l = 'C' THEN
cl := 12;
ELSIF kod_l = 'D' THEN
cl := 13;
ELSIF kod_l = 'E' THEN
cl := 14;
ELSIF kod_l = 'F' THEN
cl := 15;
END IF;
cl := cl * 16;
IF kod_r >= '0' AND kod_r <= '9' THEN
cr := TO_NUMBER(kod_r);
ELSIF kod_r = 'A' THEN
cr := 10;
ELSIF kod_r = 'B' THEN
cr := 11;
ELSIF kod_r = 'C' THEN
cr := 12;
ELSIF kod_r = 'D' THEN
cr := 13;
ELSIF kod_r = 'E' THEN
cr := 14;
ELSIF kod_r = 'F' THEN
cr := 15;
END IF;
kod := cl + cr;
RETURN NVL(Kod, 0);
END HexToNum;
...
Рейтинг: 0 / 0
как в функцию chr поместить шестнадцатиричное число?
    #32130073
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL> select to_number('c0','XX') from dual;

TO_NUMBER('C0','XX')
--------------------
192
...
Рейтинг: 0 / 0
как в функцию chr поместить шестнадцатиричное число?
    #32130074
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мудрить не надо ребята.
select chr(to_number('C0','XX')) from dual ;

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQLWKS> select chr(to_number('C0','XX')) from dual 
      2 > 
CH
 --
 
А 
Выбрана  1  строка.
...
Рейтинг: 0 / 0
как в функцию chr поместить шестнадцатиричное число?
    #32130176
Chira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть специальные пакет UTL_RAW

SELECT UTL_RAW.CAST_TO_VARCHAR2('C0')
FROM dual
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как в функцию chr поместить шестнадцатиричное число?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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