Re: Error al llamar procedimiento con distintas variables de entrada

From: "Miguel Huerta" <hgmiguel(at)gmail(dot)com>
To: "Julio Rivero" <jcrmlima(at)gmail(dot)com>
Cc: "Lista PostGreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Error al llamar procedimiento con distintas variables de entrada
Date: 2006-05-23 19:36:55
Message-ID: aa9ca9610605231236wbccf4b0l6f77b28b8dcb7c29@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 5/23/06, Julio Rivero <jcrmlima(at)gmail(dot)com> wrote:
>
> Hola a todos:
>
> Tengo un problema, cuando creo una función que tenga como variable de
> entrada un dato de tipo int2, al querer ejecutarlo no me reconoce la
> funcion, pero cuando le cambio al tipo int8 la variable de entrada, ahi
> recien me acepta o mejor dicho me reconoce la funcion, este es el código:
>
> EL flg aún no lo estoy utilizando
>
> -- Creando la función
>
> create or replace function sp_loggetartordpet
> (
> in art varchar,
> in mar varchar,
> in mod varchar,
> in ini date,
> in fin date,
> in flg int2,
> out res refcursor
> )
> as
> $$
> declare
> vc_art varchar;
> vc_mar varchar;
> vc_mod varchar;
> vc_que text;
> vc_exe text;
> begin
> vc_exe := '
> Select max(a."nCodArticulo") as "nCodArticulo",
> max(b."cDescripcion") as "cDescripcion",
> max(coalesce(b."cModelo",''S/M'')) as "cModelo",
> max(b."nCodMarca") as "nCodMarca",
> max(c."cDesMarca") as "cDesMarca",
> sum(a."nCantidadAprobada") as "nCantidad"
> From "logDItemPeticionArticulo" a,
> "genCArticulo" b,
> "genCMarca" c,
> "logCPeticion" e
> Where "nCantidadAprobada" > 0
> And "dFecAprobacion" is not null
> And sp_loggetcantaprpet(a."nCodArticulo",a."nCodObra",
> a."nCodProyecto", a."nCodPeticion", a."nItemPeticion") <
> a."nCantidadAprobada"
> And b."nCodMarca" = c."nCodMarca"
> And a."nCodArticulo" = b."nCodArticulo"
> And a."nCodObra" = e."nCodObra"
> And a."nCodProyecto" = e."nCodProyecto"
> And a."nCodPeticion" = e."nCodPeticion"';
> vc_que := '';
> vc_art := upper(trim(art));
> vc_mar := upper(trim(mar));
> vc_mod := upper(trim(mod));
> if vc_art is null then
> vc_art := '%';
> else
> vc_art := '%'||vc_art||'%';
> vc_que := vc_que||' And trim(upper(b."cDescripcion")) like
> '''||vc_art||'''';
> end if;
> if vc_mar is null then
> vc_mar := '%';
> else
> vc_mar := '%'||vc_mar||'%';
> vc_que := vc_que||' And trim(upper(c."cDesMarca")) like
> '''||vc_mar||'''';
> end if;
> if vc_mod is null then
> vc_mod := '%';
> else
> vc_mod := '%'||vc_mod||'%';
> vc_que := vc_que||' And trim(upper(b."cModelo")) like
> '''||vc_mod||'''';
> end if;
> if flg = 0 then
>
> end if;
> if flg = 1 then
>
> end if;
> vc_exe := vc_exe||vc_que||' Group by a."nCodArticulo" Order by
> 1;';
> raise notice 'Query: (%) ', vc_exe;
> Open res For Execute vc_exe;
> end;
> $$
> language 'plpgsql';
>
>
> --- ahora llamandola:
>
> begin; select sp_loggetartordpet(null,null,null,now()::date,now()::date,0)
>
> --- Me sale este error:
>
> ERROR: no existe la función sp_loggetartordpet("unknown", "unknown",
> "unknown", date, date, integer)
> HINT: Ninguna función coincide en el nombre y tipos de argumentos. Puede
> desear agregar conversión explícita de tipos.
>

select sp_loggetartordpet(null,null,null,now()::date,now()::date,0::int2)

Tal vez funciones asi, aunque no se bien (tecnicamente hablando) cual es el
error

Ahora, elimino esta función y la vuelvo a crear pero esta vez con flg de
> tipo int8 y ahi recien ejecuta la función, cual es el error???...
>
> Y me ha venido sucediendo siempre que quiero crear funciones que acepten
> varios tipos de datos enteros de diversa magnitud (int2, int4 e int8) es
> decir que dentro de las variables de entrada esten combinados int2, int4 e
> int8
>
Utilizo PostgreSQL 8.1.3 sobre WinXP
>
> Gracias de antemano por las posibles respuestas
>
> --
> Saludos
> Att,
> Julio Rivero
> Movil: 98817321
>

--
http://hgMiguel.blogspot.com/
hgMiguel(at)gmail(dot)com

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Julio Rivero 2006-05-23 19:49:43 Re: Error al llamar procedimiento con distintas variables de entrada
Previous Message Julio Rivero 2006-05-23 19:10:02 Error al llamar procedimiento con distintas variables de entrada