Ваша проблема в том, что не существует простого способа сделать это для SQLServer и Oracle в одном запросе.
Правильный способ сделать это для SQLServer - использовать STR:
Select STR(Amount, 18, DecimalPlaces) from myTable;
Правильный способ сделать это для Oracle - использовать to_char:
SELECT to_char (amount, '99999999999999.'||rpad('',DecimalPlaces, '0'))
from MyTable;
Запросы, представленные jms и Andrew, не будут работать в запросе Oracle, потому что Oracle SQL использует LENGTH (), а не LEN (). И Oracle использует to_char (), а не Cast ().