On Wed, 07 Sep 2011 17:10:59 -0400, rox wrote:
Postgres 8.3 [altho if 8.4 is required to solve this, that is possible]

sorry - OT should have been on the postgres list. In case someone searches
and finds the question, resolution shown below:

CREATE OR REPLACE FUNCTION test_insert(p_table_name varchar) RETURNS TABLE (i int) AS $f$
DECLARE
        qs1 varchar(3000);
BEGIN

        qs1 :=  'INSERT INTO ' || p_table_name ;
        qs1 :=  qs1 || ' (table_id,name) ';
        qs1 :=  qs1 || '(';
        qs1 :=  qs1 ||     ' SELECT nextval(''test_inserts_table_id_seq''),';
        qs1 :=  qs1 ||          ' county_name';
        qs1 :=  qs1 ||     ' FROM counties';
        qs1 :=  qs1 || ')';
        qs1 :=  qs1 || 'RETURNING table_id';
        qs1 :=  qs1 || ';';

 RAISE INFO 'query:%',qs1;

        RETURN QUERY EXECUTE qs1 ;
EXCEPTION
        WHEN OTHERS THEN
                RAISE INFO 'error:% %',SQLSTATE,sqlerrm;

        RETURN QUERY select -1;
END;
$f$ LANGUAGE plpgsql VOLATILE;

executing via

select test_insert('test_inserts') as intarray;

change to select test_insert('test_inserts')

_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to