funciones en oracle

tema enviado por antxongs en ORACLE
tema iniciado el 15/05/2008

Hola, que tal? soy novatillo, a ver si me asesorais.

he creados la siguientes tablas por un lado la tabla "SOCIOS" (CODIGOSOCIO,NOMBRE,APELLIDOS,EDAD,CUOTA,TIPO_SOCIO), TIPO_SOCIO es clave ajena de COD_TIPO de la tabla "TIPOS SOCIOS"(COD_TIPO,TIPO).

He creado la siguiente funcion en Oracle 10g

CREATE OR REPLACE FUNCTION get_cuota

 (t_id IN SOCIOS.tipo_socio%TYPE, p_increment IN NUMBER := 1)

RETURN NUMBER

IS

   v_cuota socios.cuota%TYPE := 0;

BEGIN

   SELECT cuota * p_increment

   INTO v_cuota

   FROM socios

   WHERE socios.tipo_socio = t_id;

  RETURN v_cuota;

END get_cuota;

/

La compilación me da correcta, sin embargo al comprobar dicha función ejecuto la siguiente sentencia

SELECT codigosocio,nombre,tipo_socio,cuota,get_cuota(1.1, 200)" incremento cuota"

 FROM SOCIOS

y me dice el siguiente error:

ORA-01422: la recuperación exacta devuelve un número mayor de filas que el solicitado.

Agradeceria cualquier ayuda, gracias