From: | "Smart Softwares - D(dot) & S(dot)" <smartds(at)gmail(dot)com> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Cc: | iannsp(at)gmail(dot)com |
Subject: | Re: Function with Array |
Date: | 2007-01-23 13:19:50 |
Message-ID: | 9907c4090701230519s5805631fg1670204426b00e56@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Hi Ivo,
Tentei a sua sugestão... alterei a função para retornar a primeira posição
do ARRAY ($1[1]), mas agora a função retorna um erro.
Para executar a função digito o seguinte comando:
select "SMART"."TB_ADM_CEP_SEL1"('{4,3}')
Mas dá o seguinte erro:
ERROR: array value must start with "{" or dimension information
CONTEXT: PL/pgSQL function "TB_ADM_CEP_SEL1" while casting return value to
function's return type
Já se eu modifico para restornar o $1[0] não dá erro, mas retorna nulo.
Obrigado!
I tried its suggestion... I modified the function to return the first
position from the ARRAY ($1[1 ]), but now the function returns an error. To
execute the function I type the following command:
select "SMART"."TB_ADM_CEP_SEL1"('{4,3}')
But it gives the following error:
ERROR: array value must start with "{" or dimension information
CONTEXT: PL/pgSQL function "TB_ADM_CEP_SEL1" while casting return value to
function's return type
Already if I modify to restornar $1[0 ] I do not give error, but he returns
null.
Thank you!
2007/1/23, Iannsp <iannsp(at)gmail(dot)com>:
>
> Smart Softwares - D. & S. escreveu:
> >
> > Hello to all... I am with a problem in a function that I am creating.
> > The parameters that are function go to receive are an ARRAY and the
> > return also will be an ARRAY, the entrance parameters will be used in
> > a clause SQL. E the exit ARRAY will be the result of the SQL. However,
> > I elaborated the function and independent of the value that played in
> > the ARRAY the result of the SQL was always null. To make a test I
> > elaborated the function below and I perceived that my ARRAY had the
> > null values.
> >
> > CREATE OR REPLACE FUNCTION TB_ADM_CEP_SEL (numeric [])
> > RETURNS numeric [] AS
> > $body$
> > DECLARE
> > BEGIN
> > --SELECT "TX_CEP" FROM "SMART"."TB_ADM_CEP"
> > --WHERE "PK_IN_COD_CEP" = $1[0];
> > RETURN $1[0];
> > END;
> > $body$
> > LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
> >
> > Somebody knows what I am making of made a mistake in this function to
> > have these results? They forgive my English good and not very obliged
> > for the suggestions.
> > Thank you...
> Hi,
> your problem happened because the array type are zero based, the array
> type iniciate your index with 1.
> try use RETURN $1[1] and you will see the correct answer.
>
> ok.
>
>
> --
> Ivo Nascimento
> Iann tech - Desenvolvendo soluções com performance e segurança
> http://www.ianntech.com.br
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Negandhi, Nishith | 2007-01-23 16:47:13 | Print command equivalent in postgresql |
Previous Message | Achilleas Mantzios | 2007-01-23 08:52:28 | Re: server process (PID xxx) was terminated by signal 7 |