Desculpa Julio . Viajei. Eu sempre uso atribuiçoes de valores com ':=' mais
não vem ao caso já o problema é outro. Pelo que parece o array deve ser
inicializado primeiro.

Exemplo:

CREATE OR REPLACE FUNCTION testarray (integer, integer) RETURNS SETOF
integer[] AS
$$
DECLARE
    n alias for $1; -- number of rows is passed as argument
    i INTEGER;
    j integer;
    k alias for $2; -- matrix columns number
    a integer[];
begin
for i in 1..n loop
    a := '{}'; -- create empty array
        for j in 1..k loop
            a := a || i;
            return next a;
        end loop;
end loop;
return;
end;
$$
LANGUAGE 'plpgsql' VOLATILE;





On 10/31/07, Júlio Catardo <[EMAIL PROTECTED]> wrote:
>
>  No PostgreSQL ????
>
>
>     *Júlio César Merenda Catardo*
> GERIN
> EQUIPAV - Promissão
> Tel. 14 3543 9054
> Cel. 14 9715 4111
> www.grupoequipav.com.br
>   *
> Se o leitor desta mensagem não for o destinatário pretendido nem a pessoa
> responsável por encaminhá-la ao destinatário, fica por meio desta notificado
> que sua disseminação, distribuição ou cópia é proibida. Neste caso,
> solicita-se que seja feita a comunicação ao remetente e que a mensagem seja
> imediatamente apagada do computador. *
>
> ----- Original Message -----
> *From:* Leonardo Chaves <[EMAIL PROTECTED]>
> *To:* Comunidade PostgreSQL Brasileira<pgbr-geral@listas.postgresql.org.br>
> *Sent:* Wednesday, October 31, 2007 9:30 AM
> *Subject:* Re: [pgbr-geral] Erro matriz
>
> Atribuições não são ':='?
>
>
> On 10/31/07, Júlio Catardo <[EMAIL PROTECTED]> wrote:
> >
> >  Pessoal, bom dia
> >
> > estou com o seguinte erro no preenchimento de uma matriz :
> >
> > SQL state : 202E
> >
> > invalid array subscripts
> >
> > Ex :
> >
> >
> > CREATE OR REPLACE FUNCTION funcao_abc(numeric)
> > RETURS SETOF type_grade AS
> > %BODY%
> >    DECLARE
> >       v_grade   integer[][];
> >       v_retorno type_grade;
> >       v_data    ALIAS FOR $1;
> >       l         integer;
> >       c         integer;
> >    BEGIN
> >       l = 1;
> >       c = 0;
> >       FOR l IN 1..10 LOOP
> >          FOR c IN 0..6 LOOP
> >             v_grade[l][c] = l;     -----> O ERRO ESTÁ AQUI
> >          END LOOP;
> >       END LOOP;
> >       ....
> >       FOR....
> >          RETURN NEXT.......
> >       END LOOP;
> >    END;
> > %BODY%
> > LANGUAGE 'plpgsql' VOLATILE;
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >   **
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
>
> --
> Att,
> Leonardo Chaves de Freitas
>
> QualiConsult
> Analista dum Bando de Dados  - DBA
>
> ------------------------------
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
Att,
Leonardo Chaves de Freitas

QualiConsult
Analista dum Bando de Dados  - DBA

<<image002.jpg>>

_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a