1.
CREATE TABLE registro(
usuario VARCHAR2(30),
fecha_hora VARCHAR2(25),
valor1 NUMBER(38),
valor2 NUMBER(38),
operacion VARCHAR2(1),
resultado NUMBER(38)
);
DECLARE
operacion VARCHAR2(1);
valor1 NUMBER := 0;
valor2 NUMBER := 0;
resultado NUMBER := 0;
BEGIN
operacion := '&op';
valor1 := &val1;
valor2 := &val2;
CASE operacion
WHEN '+' THEN resultado := valor1 + valor2;
DBMS_OUTPUT.PUT_LINE('La suma de ' || valor1 || ' y ' ||
valor2 || ' es ' || resultado);
WHEN '-' THEN resultado := valor1 - valor2;
DBMS_OUTPUT.PUT_LINE('La resta de ' || valor1 || ' y ' ||
valor2 || ' es ' || resultado);
WHEN '*' THEN resultado := valor1 * valor2;
DBMS_OUTPUT.PUT_LINE('La multiplicación de ' || valor1 || '
y ' || valor2 || ' es ' || resultado);
WHEN '/' THEN
IF (valor1 = 0) AND (valor2 = 0) THEN
DBMS_OUTPUT.PUT_LINE('Resultado indefinido');
ELSIF valor2 = 0 THEN
DBMS_OUTPUT.PUT_LINE('No se puede dividir entre cero');
ELSE
resultado := valor1 / valor2;
DBMS_OUTPUT.PUT_LINE('La división de ' || valor1 || ' y ' ||
valor2 || ' es ' || resultado);
END IF;
ELSE DBMS_OUTPUT.PUT_LINE('Operación invalida');
END CASE;
INSERT INTO registro VALUES (user, to_char(sysdate,'dd-mon-yyyy
hh:mi:ss'), valor1, valor2, operacion, resultado);
END;
/
2.
DECLARE
valor NUMBER := 0;
suma NUMBER := 0;
cont NUMBER := 0;
BEGIN
valor := &val;
LOOP
cont := cont + 1;
suma := suma + cont;
EXIT WHEN cont = valor;
END LOOP;
DBMS_OUTPUT.PUT_LINE('La suma de los primeros ' || valor || '
numeros es: ' || suma);
END;
/
3.
DECLARE
valor NUMBER := 0;
suma NUMBER := 0;
cont NUMBER := 0;
BEGIN
valor := &val;
WHILE cont < valor LOOP
cont := cont + 1;
suma := suma + cont;
END LOOP;
DBMS_OUTPUT.PUT_LINE('La suma de los primeros ' || valor || '
numeros es: ' || suma);
END;
/
4.
DECLARE
valor NUMBER := 0;
suma NUMBER := 0;
BEGIN
valor := &val;
FOR i IN 1..valor LOOP
suma := suma + i;
END LOOP;
DBMS_OUTPUT.PUT_LINE('La suma de los primeros ' || valor || '
numeros es: ' || suma);
END;
/