DECIMAL を宣言するときに、精度と位取りを定義することはできません。これらは、自動的に割り当てられるからです。精度と位取りを指定できるのは、DECIMAL へのキャストを行うときだけです。
引用符で囲まれていない数字ストリングのみで構成される、つまり、小数点と指数のどちらも含まない 10 進リテラル (12345 など) は、整数で表現できる大きさの場合は INTEGER タイプになります。それ以外の場合は、DECIMAL タイプになります。
引用符で囲まれていない数字ストリングと、オプションで小数点、および指数で構成される 10 進リテラル (123e1 など) は、浮動小数点で表現できる大きさの場合は FLOAT タイプとなります。それ以外の場合は、DECIMAL タイプになります。
キーワード DECIMAL と引用符付き数字ストリングで構成される 10 進リテラルは、小数点および指数の有無に関わらず、DECIMAL タイプとなります。例えば、DECIMAL '42'、DECIMAL '1.2346789e+203' などです。
SET VAL [equals char] CAST('123456' AS DECIMAL(3,0))