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

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

From
inspector morse
Date:
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?

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

From
Pavel Stehule
Date:


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