так и не написано там numeric. интересно, как можно пялиться на данные, и не понимать что там.
1. numeric и decimal это почти одно и то же, чем отличается - написано в datadef.pdf
2. берешь например employee.fdb, таблицу employee.
там есть salary - numeric(10,2). Объявлено как домен, но это не важно. В rdb$relation_fields, как видишь, есть только ссылка на rdb$fields (как домен или как rdb$nnn) - rdb$field_source, сам тип описан в rdb$fields. Идем туда:
rdb$field_length = 8 - это значит int64 (8 байт)
rdb$field_scale = -2 - это масштаб (numeric(precision,
scale))
rdb$field_type = 16 - см. rdb$types, в отношении rdb$field_type это int64, как я и сказал чуть выше про field_length. В первом диалекте для numeric/decimal тип может быть 27 (double precision) или 10 (float).
rdb$field_precision = 10 - это точность (numeric(
precision, scale))
Вот и все. numeric(10, 2). Охренительно сложно?

я это все не помню, разумеется, посмотрел прямо сейчас.
то есть, в сист. таблицах numeric и decimal отличить невозможно. Поэтому инструменты, извлекающие метаданные, сообщают об этом типе как о numeric. Потому что decimal это "чуть больше, чем numeric", но только при объявлении. При хранении он уже не "чуть больше", а такой, какой есть. Соответственно - numeric.
p.s. если rdb$field_precision = 0, то это целочисленный тип - smallint, integer, bigint. Если меньше нуля, то это numeric с точностью и масштабом.
Код формирования списка типов столбцов таблицы на дельфях занимает примерно 20 строк.