Não é possível definir precisão e escala ao declarar um DECIMAL, porque elas são designadas automaticamente. É possível apenas especificar precisão e escala ao lançar em um DECIMAL.
Os literais decimais que consistirem apenas em uma cadeia de dígitos sem aspas, ou seja, não contiverem uma vírgula decimal nem um expoente (por exemplo, 12345) serão do tipo INTEGER se forem pequenos o suficiente para serem representados como inteiros. Caso contrário, serão do tipo DECIMAL.
Os literais decimais que consistirem em uma cadeia de dígitos sem aspas, opcionalmente uma vírgula decimal e um expoente (por exemplo, 123e1) serão do tipo FLOAT se forem pequenos o suficiente para serem representados como flutuantes. Caso contrário, serão do tipo DECIMAL.
Os literais decimais que consistirem na palavra-chave DECIMAL e em uma cadeia de dígitos com aspas, com ou sem uma vírgula decimal e com ou sem um expoente serão do tipo DECIMAL, por exemplo, DECIMAL '42', DECIMAL '1.2346789e+203'.
SET VAL [equals char] CAST('123456' AS DECIMAL(3,0))