Non è possibile definire la precisione e la scala quando si dichiara un DECIMAL, perché tali valori vengono assegnati automaticamente. E' possibile specificare la precisione e la scala solo quando si esegue il cast ad un DECIMAL.
I letterali decimali formati da una stringa senza apici composta da sole cifre, che non contiene un punto decimale o un esponente (ad esempio 12345) sono di tipo INTEGER se sono abbastanza piccoli da essere rappresentati come integer. In caso contrario, sono di tipo DECIMAL.
I letterali decimali formati da una stringa senza apici di cifre, facoltativamente da un punto decimale, e da un esponente (ad esempio 123e1), sono di tipo FLOAT se sono abbastanza piccoli da essere rappresentati come float. In caso contrario, sono di tipo DECIMAL.
I letterali decimali formati dalla parola chiave DECIMAL e da una stringa con apici di cifre, con o senza un punto decimale e con o senza un esponente, sono di tipo DECIMAL, ad esempio, DECIMAL '42', DECIMAL '1.2346789e+203'.
SET VAL [equals char] CAST('123456' AS DECIMAL(3,0))