Re: Get error when calling function that returns a table - Mailing list pgsql-sql

From Tom Lane
Subject Re: Get error when calling function that returns a table
Date
Msg-id 2499067.1711384003@sss.pgh.pa.us
Whole thread Raw
In response to Get error when calling function that returns a table  (Russell Rose | Passfield Data Systems <russellrose@passfield.co.uk>)
List pgsql-sql
Russell Rose | Passfield Data Systems <russellrose@passfield.co.uk> writes:
> I have got a procedure (test.sql) and this calls a function (test_rr.sql) which returns a table. I use the SQL:
> Call test();

> I get the error:
> ERROR: invalid input syntax for type integer: "(14891,0,"VIMALBA ","P901 ",111.000000)"
> CONTEXT: PL/pgSQL function test() line 13 at FETCH
> SQL state: 22P02

Didn't test, but I think this:

    DECLARE my_cur  scroll CURSOR FOR
        SELECT test_rr() ;

needs to be more like

    DECLARE my_cur  scroll CURSOR FOR
        SELECT * FROM test_rr() ;

As you have it, the cursor produces a single composite column,
which isn't consistent with

    FETCH FROM my_cur INTO ret1, ret2, ret3, ret4, ret5 ;

I vaguely recall that plpgsql will sometimes let you be sloppy
about composites versus separate columns, but evidently not here.

            regards, tom lane



pgsql-sql by date:

Previous
From: Russell Rose | Passfield Data Systems
Date:
Subject: Get error when calling function that returns a table
Next
From: ft
Date:
Subject: xml build a list of all elements