Error al llamar procedimiento con distintas variables de entrada

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

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.

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Huerta 2006-05-23 19:36:55 Re: Error al llamar procedimiento con distintas variables de entrada
Previous Message Juan Martínez 2006-05-23 17:05:09 Re: Invalid page header