Votre problème est qu'il n'existe pas de moyen simple de le faire pour SQLServer et Oracle dans une seule requête.
La bonne façon de faire cela pour SQLServer est d'utiliser STR :
Select STR(Amount, 18, DecimalPlaces) from myTable;
La bonne façon de procéder pour Oracle est d'utiliser to_char :
SELECT to_char (amount, '99999999999999.'||rpad('',DecimalPlaces, '0'))
from MyTable;
Les requêtes présentées par jms et Andrew ne fonctionneront pas dans une requête Oracle car Oracle SQL utilise LENGTH() et non LEN(). Et Oracle utilise to_char() et non Cast().