Twój problem polega na tym, że nie ma łatwego sposobu na zrobienie tego zarówno dla SQLServer, jak i Oracle w jednym zapytaniu.
Właściwym sposobem na zrobienie tego dla SQLServer jest użycie STR:
Select STR(Amount, 18, DecimalPlaces) from myTable;
Prawidłowym sposobem na zrobienie tego dla Oracle jest użycie to_char:
SELECT to_char (amount, '99999999999999.'||rpad('',DecimalPlaces, '0'))
from MyTable;
Zapytania przedstawione przez jms i Andrew nie będą działać w zapytaniu Oracle, ponieważ Oracle SQL używa LENGTH(), a nie LEN(). A Oracle używa to_char(), a nie Cast().