Su problema es que no hay una manera fácil de hacer esto tanto para SQLServer como para Oracle en una consulta.
La forma correcta de hacer esto para SQLServer es usar STR:
Select STR(Amount, 18, DecimalPlaces) from myTable;
La forma correcta de hacer esto para Oracle es usando to_char:
SELECT to_char (amount, '99999999999999.'||rpad('',DecimalPlaces, '0'))
from MyTable;
Las consultas presentadas por jms y Andrew no funcionarán en una consulta de Oracle porque Oracle SQL usa LENGTH() no LEN(). Y Oracle usa to_char() no Cast().