Oracle - Impares del 1 al 100

 
Vista:

Impares del 1 al 100

Publicado por Don Luis (1 intervención) el 20/06/2010 11:54:47
Hola buenas, a ver, tengo una dudilla.

Tengo una tabla T con un atributo a de tipo integer, bien, pues tengo que crear un procedimiento PL/SQL (sin usar cursores) que me devuelva "SI" si en la tabla están todos los impares del 1 al 100, esto es, 1, 3, 5, ... 97 y 99 (no importa si tiene más números, o si alguno está repetido, solo si están o no) y que devuelva "NO" en caso contrario.

Alguna idea o pista?? 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:Impares del 1 al 100

Publicado por ro (3 intervenciones) el 28/07/2010 17:42:25
FUNCTION impares RETURN varchar2 IS
v_valor varchar2(50);
BEGIN
FOR x IN 1..100 LOOP
IF mod(x, 2) = 1 THEN
BEGIN
SELECT 'SI'
INTO v_valor
FROM tabla
WHERE atributo = x;
EXCEPTION
WHEN no_data_found THEN
v_valor := 'NO';
EXIT;
WHEN others THEN
v_valor := SQLERRM;
EXIT;
END;
END IF;
END LOOP;
RETURN v_valor;
END;
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:Impares del 1 al 100

Publicado por ro (3 intervenciones) el 28/07/2010 17:50:49
falto una linea en el codigo anterior

FUNCTION impares RETURN varchar2 IS
v_valor varchar2(50);
BEGIN
FOR x IN 1..100 LOOP
IF mod(x, 2) = 1 THEN
BEGIN
SELECT 'SI'
INTO v_valor
FROM tabla
WHERE atributo = x
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
v_valor := 'NO';
EXIT;
WHEN others THEN
v_valor := SQLERRM;
EXIT;
END;
END IF;
END LOOP;
RETURN v_valor;
END;
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