Oracle:
SELECT DATA_LENGTH, DATA_PRECISION FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = :TableName AND COLUMN_NAME = :ColumnName
Firebird (+ Interbase):
SELECT rdb$field_scale, rdb$field_precision FROM rdb$relations r JOIN rdb$relation_fields rf ON rf.rdb$relation_name = r.rdb$relation_name JOIN rdb$fields fld ON rf.rdb$field_source = fld.rdb$field_name WHERE r.rdb$relation_name = :TableName AND rf.rdb$field_name = :ColumnName
MySql (not tested!):
SELECT NUMERIC_PRECISION, NUMERIC_SCALE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = :TableName AND COLUMN_NAME = :ColumnName
source share