Invertir un número en PL/SQL

Requisito previo : introducción a PL/SQL

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.

Explicación:
Considere el ejemplo, entrada = 12345.

Paso 1: mod(12345,10) = 5
rev:= 0*10 + 5 = 5
num = piso(12345/10) = 1234

Paso 2: mod(1234,10) = 4
rev:= 5*10 + 4 = 54
num = piso(1234/10) = 123

Paso 3: mod(123,10) = 3
rev:= 54*10 + 3 = 543
num = piso(123/10) = 12

Paso 4: mod(12,10) = 2
rev:= 543*10 + 2 = 5432
num = piso(12/10) = 1

Paso 5: mod(1,10) = 1
rev:= 5432*10 + 1 = 54321
num = floor(1/10) = 0
en el paso 5, num =0 que no satisface la condición while y el ciclo termina.

revolución = 54321

Más ejemplos:

Input : 123456
Output :654321
Input :87459
Output :95478

A continuación se muestra la implementación requerida:

SET SERVEROUTPUT ON;
DECLARE
-- declare a number 'num' for reading actual input
-- declare another number 'rev' that would be reverse of num
num NUMBER;
rev NUMBER;
  
BEGIN
-- & is used to read input from keyboard
num:=#
-- initialize rev to 0
rev:=0;
-- the loop runs until num is greater than 0
WHILE num>0 LOOP
-- mod function is used to find the modulus/ remainder of num when divided by 10
  
rev:=(rev*10) + mod(num,10);
-- floor function is used to obtain a result which is an integer
num:=floor(num/10);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Reverse of the number is: ' || rev);
END;
/                        
  
-- Program End

Producción:

Enter value for num : 157439
Reverse of the number is: 934751

Publicación traducida automáticamente

Artículo escrito por Shashank12 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *