No puede definir una precisión y una escala cuando declara un DECIMAL, por se asignan automáticamente. Sólo es posible especificar la precisión y la escala cuando se realiza una transformación CAST en un DECIMAL.
Literales decimales que constan únicamente de una serie de dígitos sin comillas, es decir, que no contienen ni una coma decimal ni un exponente (por ejemplo, 12345), son de tipo INTEGER si son lo suficientemente pequeños para que puedan representarse como enteros. De lo contrario, son de tipo DECIMAL.
Los literales decimales que constan de una serie de dígitos sin comillas, opcionalmente una coma decimal y un exponente (por ejemplo, 123e1), son de tipo FLOAT si son lo suficientemente pequeños como para poder representarlos como flotantes. De lo contrario, son de tipo DECIMAL.
Los literales decimales que constan de la palabra clave DECIMAL y una serie de dígitos entre comillas, con o sin una coma decimal y con o sin un exponente, son de tipo DECIMAL, por ejemplo, DECIMAL '42', DECIMAL '1.2346789e+203'.
SET VAL [equals char] CAST('123456' AS DECIMAL(3,0))