PostgreSQL - ERROR en Postgres al compilar una funcion

   
Vista:

ERROR en Postgres al compilar una funcion

Publicado por Ricardo Garcia (4 intervenciones) el 23/03/2008 04:44:42
hola a todos los postgresistas tengo, me sale un error y no lo encuentro es el siguiente:

ERROR: value too long for type character(1)
CONTEXT: PL/pgSQL function "ins_usuario" line 11 at select into variables

Tengo la siguiente funcion:

create or replace function ins_usuario(nombres varchar(20),ap_paterno varchar(20),ap_materno varchar(20),telf_casa varchar(15),telf_celular varchar(9),direccion varchar(80),fecha_nac varchar(12),email varchar(38),ci varchar(7),profesion varchar(25),area varchar(25),cargo varchar(25),usuario varchar(16),pass varchar(32))
RETURNS integer AS $$
DECLARE
n_cod_per char;
nuevo char;
aux1 char;
aux2 char;
aux3 char;
val1 integer;
val2 integer;
val3 integer;
begin
select max(codigo_per) INTO n_cod_per from datos_personales.persona;
aux1 = substr(n_cod_per,2,1);
aux2 = substr(n_cod_per,3,1);
aux3 = substr(n_cod_per,4,1);
val1 = to_number(aux1,9);
val2 = to_number(aux2,9);
val3 = to_number(aux3,9);
if (val1=0) then
if (val2=0) then
val3 = val3 + 1;
nuevo='u'||to_char(val1,'99')||to_char(val2,'99')| |to_char(val3,'99');
end if;
end if;
insert into datos_personales.persona values(nuevo,nombres,ap_paterno,ap_materno,telf_ca sa,telf_celular,direccion,fecha_nac,email,ci,profe sion,area,cargo);
insert into seguridad.usuario values(nuevo,usuario,md5(pass));
END;
$$
LANGUAGE 'plpgsql'

Y ejecuto la funcion de la siguiente manera
select ins_usuario('fabiola','loza','medrano','591-464-53565','728-64393','Juana','a','a','a','a','a','a','saurio','s aurio')

Espero me puedan ayudar y decirme que es lo que pasa, que me falta o que es lo que sobra Muchas Gracias.
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:ERROR en Postgres al compilar una funcion

Publicado por rtb (7 intervenciones) el 24/03/2008 19:52:48
Hola Ricardo,
Revisa el valor de tu variable nuevo, según tengo entendido Char acepta solo un caracter, en todo caso cambia el tipo de dato a varchar...espero te sirva.
Saludos
Roberto
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