I'm not entirely sure what you want, but you could probably do
-- Detail query
;With cteF As
(Select OrderID, Fruits_description, Fruits, Row_Number() Over(Partition By OrderID Order By Fruits_description) As rn
From Table1),
cteV As
(Select OrderID, Vegetables_description, Vegetables, Row_Number() Over(Partition By OrderID Order By Vegetables_description) As rn
From Table2),
cteT As
(Select OrderID, Toys_description, Toys, Row_Number() Over(Partition By OrderID Order By Toys_description) As rn
From Table3)
Select Coalesce(f.OrderID, v.OrderID, t.OrderID) As OrderID,
f.Fruits_description,
v.Vegetables_description,
t.Toys_description,
IsNull(f.Fruits, 0) As Fruits,
IsNull(v.Vegetables, 0) As Vegetables,
IsNull(t.Toys, 0) As Toys
From cteF f
Full Outer Join cteV v On f.OrderID = v.OrderID And f.rn = v.rn
Full Outer Join cteT t On IsNull(f.OrderID, v.OrderID) = t.OrderID And IsNull(f.rn, v.rn) = t.rn
Order By OrderID;
You said you use PL/SQL. That is Oracle. This is a SQL Server forum. You want to ask Oracle questions in an Oracle forum. The two products are different and in many cases the right answer for SQL Server will not be the answer you need in Oracle.
Tom