Re: refer a column as a varible name?
От | Michael Fuhr |
---|---|
Тема | Re: refer a column as a varible name? |
Дата | |
Msg-id | 20050912230323.GA63469@winnie.fuhr.org обсуждение исходный текст |
Ответ на | refer a column as a varible name? (gherzig@fmed.uba.ar) |
Ответы |
Re: refer a column as a varible name?
|
Список | pgsql-sql |
On Mon, Sep 12, 2005 at 12:21:22PM -0300, gherzig@fmed.uba.ar wrote: > suppose the > > type mycolumn as (field1, varchar, field2 varchar) > and > > field_name = ''field1'' > > and returnValue declared as mycolumn > ... > can i say returnValue.$field_name = ''ok''? To achieve this in PL/pgSQL you'll need to use a conditional statement (IF field_name = 'field1' THEN ...). I'm not sure if a solution involving EXECUTE is possible; if so then it's probably non-obvious. What version of PostgreSQL are you using, and do you have a requirement to use PL/pgSQL? In 8.0 PL/Perl can return composite types and such an assignment would be trivial: CREATE TYPE mycolumn AS (field1 varchar, field2 varchar); CREATE FUNCTION foo(varchar) RETURNS mycolumn AS $$ my $field_name = $_[0]; my $returnValue = {$field_name => "ok"}; return $returnValue; $$ LANGUAGE plperl IMMUTABLE STRICT; SELECT * FROM foo('field1');field1 | field2 --------+--------ok | (1 row) SELECT * FROM foo('field2');field1 | field2 --------+-------- | ok (1 row) -- Michael Fuhr
В списке pgsql-sql по дате отправления: