How to read refcursor column's using string column name?

Started by inspector morseabout 11 years ago2 messagesgeneral
Jump to latest
#1inspector morse
inspectormorse86@gmail.com

How do I access a cursor's column using a string column?

Example:

CREATE FUNCTION write_html_select(items cursor, data_value_field text,
data_text_field text)
AS
$$
DECLARE r RECORD;
html TEXT;
BEGIN
FOR r in items LOOP
html = "<option value=" || r[data_value_field] || "/>";
END LOOP;

RETURN html;
END;
$$
LANGUAGE plpgsql;

As you can see, I want to access RECORD r's columns by a STRING column name
value (data_value_field etc)....is there anyway to do this?

#2Pavel Stehule
pavel.stehule@gmail.com
In reply to: inspector morse (#1)
Re: How to read refcursor column's using string column name?

2015-03-10 20:56 GMT+01:00 inspector morse <inspectormorse86@gmail.com>:

How do I access a cursor's column using a string column?

Example:

CREATE FUNCTION write_html_select(items cursor, data_value_field text,
data_text_field text)
AS
$$
DECLARE r RECORD;
html TEXT;
BEGIN
FOR r in items LOOP
html = "<option value=" || r[data_value_field] || "/>";
END LOOP;

RETURN html;
END;
$$
LANGUAGE plpgsql;

As you can see, I want to access RECORD r's columns by a STRING column
name value (data_value_field etc)....is there anyway to do this?

you can translate record to Hstore type and then you can take a value by
dynamic name. Usual older solution was using plperl or plpython.

Regards

Pavel