2016-11-11 2 views
2

Как я нашел в документации:PostgreSQL - возвращение п размера VARCHAR из функции

модификаторов типа Скобок (например, точность поля для типа числовома) отбрасываются CREATE FUNCTION

ли есть ли альтернативы для возврата varchar (N) из функции plpgsql? обновление


вопрос:

На картинке вы можете увидеть, что имя столбца признанную в качестве VARCHAR (128), однако номер столбца признан nonsized VARCHAR функции

Result example

f_concat возвращает: cast (res as varchar (255));

+0

Почему вы думаете, что нужно? Какую проблему ты пытаешься решить? –

+0

@a_horse_with_no_name Одна старая программа Delphi видит все без длины, как ТЕКСТ BLOB. Поэтому, если я выбираю поля из столбца varchar (255), он корректно показывает varchar (255), но если я использую функцию для результата этого столбца, результат будет отличаться от символа, даже если я сделаю cast как varchar (255) внутри функции. – Ice2burn

+1

Я думаю, что единственный способ - это представление, которое делает явное приведение к 'varchar (x)' –

ответ

3

Вы можете сохранить модификатор типа для результата функции, создав domain. Postgres будет использовать лежащую в основе varchar(N) типа при отправке описания столбцов для своего клиента:

Смежные вопросы