Related Articles
Reverse a number in PL/SQL
• Difficulty Level : Medium
• Last Updated : 20 Nov, 2019

Prerequisite PL/SQL introduction

In PL/SQL code groups of commands are arranged within a block. A block group related declarations or statements.
In declare part, we declare variables and between begin and end part, we perform the operations.

Explanation:
Consider the example, input = 12345.

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

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

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

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

Step 5 : mod(1,10) = 1
rev:= 5432*10 + 1 = 54321
num = floor(1/10) = 0
in step 5, num =0 which doesn’t satisfy the while condition and loop terminates.

rev = 54321

More examples:

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

Below is the required implementation:

 `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`

Output:

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

```

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up