El rango de un int sin firmar de 12 bytes sería 0..79228162514264337593543950335
(29 dígitos máx.); de acuerdo con los documentos (la misma URL que citó), un DECIMAL
/NUMERIC
columna empaqueta cada grupo de nueve dígitos de base 10 en cuatro bytes (sumando floor(29 / 9) * 4 = 3 * 4 = 12
bytes para los primeros 27 dígitos), con los 2 dígitos restantes tomando un byte adicional, llegando a 13 bytes de almacenamiento para un DECIMAL(29)
columna.
O bien, puede almacenarlos como BINARY(12)
.