O problema é que a precisão do valor do resultado é muito alta para converter em um System.Decimal sem perda de dados. Eu esqueço o número exato de dígitos permitidos, mas é em torno de 18 ou mais. É aceitável arredondar () o valor do resultado para tantos dígitos? No exemplo que você deu, um
round(MyColumn, 15)
ou então deve ser suficiente...