Re: Get error when calling function that returns a table

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Get error when calling function that returns a table
Дата
Msg-id 2499067.1711384003@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Get error when calling function that returns a table  (Russell Rose | Passfield Data Systems <russellrose@passfield.co.uk>)
Список 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 по дате отправления:

Предыдущее
От: Russell Rose | Passfield Data Systems
Дата:
Сообщение: Get error when calling function that returns a table
Следующее
От: ft
Дата:
Сообщение: xml build a list of all elements