problema con funciones
Publicado por ALEJANDRO (2 intervenciones) el 31/05/2010 04:22:35
hola amigos, le cuento que tengo un problema
me cree una funcion que es la siguiente:
–1 parte
Create or replace function Generar_correo1(a varchar, b varchar, NOMU varchar, f date) return varchar as
dd varchar(5); mm varchar(5); aa varchar(5); correo varchar(335); reversed_string varchar(100); c char(1); i number; begin select extract(day from f) into dd from dual; select extract(month from f) into mm from dual; select extract(year from f) into aa from dual; reversed_string:=' '; – para invertir una cadena * for i in 1..length(a) loop select substr(a,length(a)-i+1,1) into c from dual; end loop; –* correo:=substr (c,1,2)||substr(b,1,1)||aa||substr(NOMU,1,length(NOMU))||'@hotmail.com'; return correo; end;
–2 parte declare cor varchar(400); begin select Generar_correo1(F.IdFuncionario,C.IdCargo,U.NombreUnidad,F.Fechanacimiento) into cor from Funcionario F, Cargo C, Unidad U where F.IdCargo=C.IdCargo and F.IdUnidad=U.IdUnidad; dbms_output.put_line(cor); end;
y cuando ejecuto la 2 parte, me da el siguiente problema:
ORA-01422: la recuperación exacta devuelve un número mayor de filas que el solicitado
por favor ayudenme, les agradezco de ante mano su ayuda.
me cree una funcion que es la siguiente:
–1 parte
Create or replace function Generar_correo1(a varchar, b varchar, NOMU varchar, f date) return varchar as
dd varchar(5); mm varchar(5); aa varchar(5); correo varchar(335); reversed_string varchar(100); c char(1); i number; begin select extract(day from f) into dd from dual; select extract(month from f) into mm from dual; select extract(year from f) into aa from dual; reversed_string:=' '; – para invertir una cadena * for i in 1..length(a) loop select substr(a,length(a)-i+1,1) into c from dual; end loop; –* correo:=substr (c,1,2)||substr(b,1,1)||aa||substr(NOMU,1,length(NOMU))||'@hotmail.com'; return correo; end;
–2 parte declare cor varchar(400); begin select Generar_correo1(F.IdFuncionario,C.IdCargo,U.NombreUnidad,F.Fechanacimiento) into cor from Funcionario F, Cargo C, Unidad U where F.IdCargo=C.IdCargo and F.IdUnidad=U.IdUnidad; dbms_output.put_line(cor); end;
y cuando ejecuto la 2 parte, me da el siguiente problema:
ORA-01422: la recuperación exacta devuelve un número mayor de filas que el solicitado
por favor ayudenme, les agradezco de ante mano su ayuda.
Valora esta pregunta
0