powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Формат вывода типа inet
2 сообщений из 2, страница 1 из 1
Формат вывода типа inet
    #39342720
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Использую в БД тип inet, для хранения ip-адресов и возникла проблема, в некоторых случаях, для IP V6, мне нужно отобразить адреса в развернутом виде.
То есть отображаемое в виде, например:
3fff::a00:127
нужно отобразить как:
3fff:0000:0000:0000:0000:0000:0a00:0127
есть ли для этого какая-то готовая функция, а то не охота свою писать?
...
Рейтинг: 0 / 0
Формат вывода типа inet
    #39344018
Alex__kK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__kK,

Так и пришлось самому писать, вот что получилось, если вдруг кому пригодится:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with addr as 
(select lpad(regexp_split_to_table(replace('a::3fff', '::',':ZZZZ:'), ':'),4,'0') saddr )
select trim(regexp_replace(upper(string_agg(s1.forconcat,'')),'(.{4})+?','\1:', 'g' ),':')
from
(select 
   case 
     when saddr = 'ZZZZ'
         then lpad(''::varchar,32 - (select count(*) cnt from addr where saddr <> 'ZZZZ')::Integer * 4,'0')
     else saddr 
   end forconcat
from addr) as s1
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Формат вывода типа inet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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