Обсуждение: Тип record преобразовать в text[]
Возможно ли преобразовать значение типа record в массив text[]? Если можно, то как? -- [5005747] / [http://ego.b0b.org/about/] [11C607AC] / [5E2B 1445 912B 490A 5524 EA39 A36C 7E67 11C6 07AC]
В сообщении от 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]
> > Возможно ли преобразовать значение типа record в массив text[]? > > Если можно, то как? > на plsql нельзя... зато на plperl или plpython можно! просто никогда не писал > на них ХП! помогите пожалуйста! Ну раз знаешь что можно, так кидай сюда то чего не получилось, будет помощь. Примеры как писать на перле вполне для начала подходящий на http://www.postgresql.org/docs/8.1/interactive/plperl.html. Я сам как-то спробовал - влегкую получилось все что там и чуток поэкспериментировал. -- engineer
В сообщении от 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]