En el código PL/SQL, los grupos de comandos se organizan dentro de un bloque. Un grupo de bloques relacionado con declaraciones o sentencias. En declare part, declaramos variables y entre start y end part, realizamos las operaciones.
Dados dos números num1 y num2 y la tarea es intercambiar el valor de los números dados.
Ejemplos:
Input : num1 = 1000, num2 = 2000 Output : num1 = 2000, num2 = 1000 Input : num1 = 40, num2 = 20 Output : num1 = 20, num2 = 40
Método 1 (usando operadores aritméticos)
La idea es obtener la suma en uno de los dos números dados. Luego, los números se pueden intercambiar usando la suma y la resta de la suma.
DECLARE -- declare variable num1, num2 -- of datatype number num1 NUMBER; num2 NUMBER; BEGIN num1 := 1000; num2 := 2000; -- print result before swapping dbms_output.Put_line('Before'); dbms_output.Put_line('num1 = ' || num1 ||' num2 = ' || num2); -- swapping of numbers num1 and num2 num1 := num1 + num2; num2 := num1 - num2; num1 := num1 - num2; -- print result after swapping dbms_output.Put_line('After'); dbms_output.Put_line('num1 = ' || num1 ||' num2 = ' || num2); END; -- Program End
Producción:
Before num1 = 1000 num2 = 2000 After num1 = 2000 num2 = 1000
Método 2 La multiplicación y la división también se pueden usar para intercambiar.
DECLARE -- declare variable num1, num2 -- of datatype number num1 NUMBER; num2 NUMBER; BEGIN num1 := 1000; num2 := 2000; -- print result before swapping dbms_output.Put_line('Before'); dbms_output.Put_line('num1 = ' || num1 ||' num2 = ' || num2); -- swapping of numbers num1 and num2 num1 := num1 * num2; -- num1 now becomes 15 (1111) num2 := num1 / num2; -- num2 becomes 10 (1010) num1 := num1 / num2; -- num1 becomes 5 (0101) -- print result after swapping dbms_output.Put_line('After'); dbms_output.Put_line('num1 = ' || num1 ||' num2 = ' || num2); END; -- Program End
Producción:
Before num1 = 1000 num2 = 2000 After num1 = 2000 num2 = 1000