Oracle - problema con funciones

 
Vista:

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.
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:problema con funciones

Publicado por Sergio (39 intervenciones) el 16/07/2010 03:45:56
Hermano está más claro que el agua, la función "Generar_correo1" te está regresando más de un registro.
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:problema con funciones

Publicado por ALEJANDRO (2 intervenciones) el 16/07/2010 05:13:02
bueno si tienes razon, pero ahora que crees que deberia hacer para solucionar este problema.

por favor ayudenme.
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:problema con funciones

Publicado por Sergio (39 intervenciones) el 16/07/2010 17:47:12
Bueno, cuando especificas "SELECT ... INTO cor", la operación espera que regreses una sola fila, más sin embargo, en "WHERE F.IdCargo=C.IdCargo and F.IdUnidad=U.IdUnidad;" en realidad no estás filtrando nada, lo que tienes que hacer es agregar el/los filtros necesarios para que el SELECT te regrese una sola fila ó hacer un cursor con ese SELECT y recorrerlo con un FOR LOOP.
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