Re: error al hacer un select sobre una función

From: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>
To: "Erik Ferney Cubillos Garcia" <erikferneycubillos(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: error al hacer un select sobre una función
Date: 2008-10-29 14:30:33
Message-ID: 3073cc9b0810290730v446ef9b2h8943a7517b5d3886@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 10/29/08, Erik Ferney Cubillos Garcia <erikferneycubillos(at)gmail(dot)com> wrote:
>
> CREATE OR REPLACE FUNCTION spnmcalpromconcepto (
> IN PSiCodEmpr INTEGER, -- Codigo de Empresa
> IN PDeCodEmpl NUMERIC, -- Codigo del empleado
> IN PStNroCont CHARACTER VARYING (12), -- Número de Contrato
> IN PDtFecInic TIMESTAMP, -- Fecha Inicial del calculo
> IN PDtFecFina TIMESTAMP, -- Fecha Final del calculo
> IN PSiCodConc SMALLINT, -- Codigo del concepto a promediar
> IN PStTipProm CHARACTER VARYING (1), -- Indicador de si es con el
> valor pagado o el valor real
> OUT PDeValProm NUMERIC, -- Base de liquidacion
> OUT PDePorBase NUMERIC, -- Porcentaje de Base
> OUT PDeValBase NUMERIC, -- Base de liquidaci¢n
> OUT PDeValIngr NUMERIC, -- Valor ingresos totales
> OUT PDeValEgre NUMERIC, -- Valor egresos totales
> OUT PdeBasFija NUMERIC
> )
> RETURNS record
>
[...]
>
> ERROR: no existe la función spnmcalpromconcepto(integer, integer, unknown,
> unknown, unknown, integer, unknown)
> LINE 2: from spnmcalpromconcepto (1, 2969397, '1', '01/09/2008', '30...
> ^
> HINT: Ninguna función coincide en el nombre y tipos de argumentos. Puede
> desear agregar conversión explícita de tipos.
>

es porque el penultimo parametro es un smallint pero postgres al ver
el 1 que pasaste de parametro piensa que es un integer, tienes que
hacer un casteo para eso...
si los dos puntos te dan error quiza puedas:
- poner el select en una cadena de caracteres y con alguna sentencia
de delphi mandarlo a ejecutar...
- o preparar el query desde delphi (estoy adivinando, al hacer eso
otros lenguajes permiten enviar parametros indicando el tipo de dato)?
- o por ultimo, declaras el parametro como integer y en la funcion
verificas que el valor no sea mayor al de un smallint

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Erik Ferney Cubillos Garcia 2008-10-29 14:33:52 Re: error al hacer un select sobre una función
Previous Message Erik Ferney Cubillos Garcia 2008-10-29 14:30:30 Re: error al hacer un select sobre una función