I have two tables A and B having same structure.
for example : A have columns id,name ,adress and gender. Similary table B has same structure. ID is a link between these two tables. What I want is to print the ID , Column_name list whose values are different, A column values and B column values whose values are different from each other.
I have attached the image for the reference output

This gets your output in a format that is readable for humans and sql. This kind of thing can be done many ways to avoid redundancy, but this ought to give you a starting point.
Rationale: Unpivot both tables so you have a skinny result of the column name and value. Then you can join on the id and column name with an inequality condition to get the records which are different.
Fiddle: https://dbfiddle.uk/EnOa7U7g
Notes, be wary of:
1.) Nulls. "<>" Does not work for nulls, you'll have to handle that explicitly if your data is nullable.
2.) Orphans between the two tables, and datatypes. For simplicity I've inner joins, so if you can have id's in table_a but not table_b or vice versa you'll need to handle that in some appropriate way.
3.) Datatypes, overloading a column with information from many sometimes requires casting where Oracle can't do it implicitly.
Table_A
Table_B
Result