PostgreSQL - Funcion en PostgreSQL

 
Vista:

Funcion en PostgreSQL

Publicado por Ana Gabriela (3 intervenciones) el 06/09/2005 18:33:38
Tengo un ligero problema y no encuentro la solución; tengo el siguiente script para generar una función:

create function maximo(datos,datos) returns enterocorto as
'
declare
codi enterocorto;
begin
select into codi max($2)+1
from $1;

return codi;
end;
'
language 'sql' volatile;


Enterocorto y datos son tipo de datos que tengo creado con los que no ha existido inconveniente en otras funciones que cree, pero esta no me permite crearla y no tengo ningún mensaje de error, por favor si ustedes me pueden ayudar les agradesco.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcion en PostgreSQL

Publicado por Julio (334 intervenciones) el 09/09/2005 03:30:51
Vamos por partes:

1.- create function maximo(datos,datos) :

Que tipo de datos le estas enviando a la función?, la sintaxis en esta primera parte es la siguiente:
create function maximo(int4,int4,int4)

2.- enterocorto as :

Una función siempre te tiene que devolver un tipo de valor, varchar, entero, de tipo fecha, booleano, etc., es decir:

create function maximo(int8,int8,int8) returns int8 as

3.- codi enterocorto;

Si quieres un entero corto, esto depende, pues el que te soporta menos longitud es el int4, seria algo asi:

create function maximo(int8,int8,int8) returns int8 as
$BODY$
declare
codi int4;

$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion en PostgreSQL

Publicado por Ana Gabriela (3 intervenciones) el 12/09/2005 22:20:11
Enterocorto y Datos son tipos datos que tengo definidos y que en otras funciones que he creado no han dado ningun problema. El inconveniente se encuentra en esta función.

Gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion en PostgreSQL

Publicado por Julio (334 intervenciones) el 13/09/2005 05:33:47
mmm... puede que el problema este en asignar un tipo de dato a otro, si has creado dos tipos de datos con distinta longitud o que soporte cierto tipo de dato y no sean compatibles te traera problemas, es decir yo no le puedo pasar a una variable de tipo decimal con 2 decimales una variables decimal con 3 decimales pues no soporta, es decir:

vn_dato1 int8;
vn_dato2 int4;

vn_dato2 := vn_dato1;

es decir no le puedo asignar a una variables de menor magnitud una de mayor magnitud, puede que este el problema este ahi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Funcion en PostgreSQL

Publicado por Ana Gabriela (3 intervenciones) el 13/09/2005 17:03:51
Tienes razón ese es el inconveniente, gracias por toda tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar