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

From: "Erik Ferney Cubillos Garcia" <erikc(at)digitalware(dot)com(dot)co>
To: "postgres Emanuel CALVO FRANCO" <postgres(dot)arg(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:30
Message-ID: 147151cc0810290730r547d1c51p947029bc2c3a985@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

bueno verás, ambas funciones tienen exactamente los mismos parametros, bueno
a excepción de esta última que es la que genera el error, si hago un select
sobre la primera con los mismos parámetros no genera ningun error, es por
eso que no entiendo cual es el problema, en todo caso voy a hacer los
cambios que me recomiendas y desde delphi hago un QUERY con es select de la
misma forma en que lo hago en el pgAdmin, asi que bueno eso es lo de menos,
voy a revisar los cambios que me recomiendas y te comento gracias

2008/10/29 postgres Emanuel CALVO FRANCO <postgres(dot)arg(at)gmail(dot)com>

> no, pero de esta forma no sería lo que intentas hacer...
>
> me refería a la definición de la función cuando hablaba del ddl.
>
>
> el error te esta tirando:
> ERROR: no existe la función spnmcalpromconcepto(integer, integer,
> unknown, unknown, unknown, integer, unknown)
> si te fijas el segundo parametro es integer, o sea que te está tomando
> el paramtero como integer y
>
>
> 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
>
> la función la llamas así:
>
> SELECT P_DeValProm
> from spnmcalpromconcepto (1, 2969397, '1', '01/09/2008', '30/11/2008', 1,
> '1')
> spnmcalpromconcepto(integer, integer, unknown, unknown,
> unknown, integer, unknown) <--linea del error
>
> le estas pifiando a los tipos de datos.
> además estas utilizando TIMESTAMP y le pasas una fecha común (acordate
> que el TIMESTAMP consta de 4 bytes), en todo caso
> definilo como DATE
> en el tercer parametro lo declaras como character de 12 y le pasas
> '1', pasale '000...1' y declaralo como varchar(12).
> respecto a las fechas fijate bien.
> De alguna se debe poder parsear la consulta en delphi... podrias pasar
> como estas llamando la consulta desde el lenguajes?
>
> Asegurate que la función compiló correctamente y que esta visible
> desde tu base de datos haciendo \df <nombrefunc> desde el psql
>
>
>
>
> 2008/10/29 Erik Ferney Cubillos Garcia <erikferneycubillos(at)gmail(dot)com>:
> > Hola Emanuel, gracias, queria preguntarte y lo siento por la
> ignorancia...
> >
> > que es la DDL, verás traté de quitarle y ponerle los espacios de la misma
> > forma en que declaré la función pero nada,
> >
> >
> >> sacaste los espaciosdespues del nombre (en el ddl y en la consulta) ?
> >> creo que una vez tuve ese inconveniente
> >
> > y bueno hice un select de esta forma
> >
> > SELECT PDeValProm
> > from spnmcalpromconcepto (1 :: INTEGER,
> > 2969397 :: NUMERIC,
> > '1' :: CHARACTER VARYING,
> > '01/09/2008' :: TIMESTAMP,
> > '30/11/2008' :: TIMESTAMP,
> > 1 :: SMALLINT,
> > '1' :: CHARACTER VARYING)
> >
> > de esta forma me devuelve un valor, pero en DELPHI no puedo hacerlo de
> esta
> > forma, ya que los dos punto me generan error
> >
> > Gracias
> >
> > --
> > Atentamente,
> >
> >
> > ______________________________
> > ERIK FERNEY CUBILLOS GARCIA
> > Ing. Desarrollo - Kactus HR
> > DIGITAL WARE LTDA.
> > Calle 72 No. 12-65 Piso 2
> > Bogotá, Colombia
> > erikc(at)digitalware(dot)com(dot)co
> > www.digitalware.com.co
> >
>
>
>
> --
> Emanuel Calvo Franco
> Syscope Postgresql DBA
> BaPUG Member
> --
> TIP 4: No hagas 'kill -9' a postmaster
>

--
Atentamente,

______________________________
ERIK FERNEY CUBILLOS GARCIA
Ing. Desarrollo - Kactus HR
DIGITAL WARE LTDA.
Calle 72 No. 12-65 Piso 2
Bogotá, Colombia
erikc(at)digitalware(dot)com(dot)co
www.digitalware.com.co

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2008-10-29 14:30:33 Re: error al hacer un select sobre una función
Previous Message postgres Emanuel CALVO FRANCO 2008-10-29 14:25:05 Re: error al hacer un select sobre una función