Обсуждение: Тип record преобразовать в text[]

Поиск
Список
Период
Сортировка

Тип record преобразовать в text[]

От
Alexey Kolosov
Дата:
Возможно ли преобразовать значение типа record в массив text[]?

Если можно, то как?

--
 [5005747] / [http://ego.b0b.org/about/]
[11C607AC] / [5E2B 1445 912B 490A 5524  EA39 A36C 7E67 11C6 07AC]

Re: Тип record преобразовать в text[]

От
Alexey Kolosov
Дата:
В сообщении от 3 мая 2007 Alexey Kolosov написал(a):
> Возможно ли преобразовать значение типа record в массив text[]?
> Если можно, то как?
на plsql нельзя... зато на plperl или plpython можно! просто никогда не писал
на них ХП! помогите пожалуйста!



--
 [5005747] / [http://ego.b0b.org/about/]
[11C607AC] / [5E2B 1445 912B 490A 5524  EA39 A36C 7E67 11C6 07AC]

Re: Тип record преобразовать в text[]

От
Anton
Дата:
> > Возможно ли преобразовать значение типа record в массив text[]?
> > Если можно, то как?
> на plsql нельзя... зато на plperl или plpython можно! просто никогда не писал
> на них ХП! помогите пожалуйста!

Ну раз знаешь что можно, так кидай сюда то чего не получилось, будет помощь.
Примеры как писать на перле вполне для начала подходящий на
http://www.postgresql.org/docs/8.1/interactive/plperl.html. Я сам
как-то спробовал - влегкую получилось все что там и чуток
поэкспериментировал.
--
engineer

Re: Тип record преобразовать в text[]

От
Alexey Kolosov
Дата:
В сообщении от 3 мая 2007 Alexey Kolosov написал(a):
> Возможно ли преобразовать значение типа record в массив text[]?
> Если можно, то как?
в общем вот результат на plperl:

CREATE OR REPLACE
FUNCTION "mammoth"."get_field_values_by_muid_and_mcid_as_set" (p_table text,
p_fields text, p_muid bigint, p_mcid integer) RETURNS SETOF text AS
$body$
my $v_query = spi_query("select $_[1] from $_[0] where muid = $_[2] and mcid =
$_[3] limit 1;");
my $v_row = spi_fetchrow($v_query);

if (defined($v_row)) {
    foreach my $v_field (split(/\, /, $_[1])) {
                 return_next($v_row->{$v_field});
    }
}

return undef;
$body$
LANGUAGE 'plperl' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

сильно не ругайте - первая ХП на plperl :)

--
 [5005747] / [http://ego.b0b.org/about/]
[11C607AC] / [5E2B 1445 912B 490A 5524  EA39 A36C 7E67 11C6 07AC]