SQL查询以获取列的精度值

问题描述:

我需要一个SQL查询来获取某些列的精度值.我主要关注的是十进制类型的列,而我也需要相同的精度值.

I need a sql query that gets the precision value for certain columns.. I am mainly concerned with a decimal type column and I need the precision value for the same.

我意识到在某些版本和数据库服务器供应商中可以这样做.如果您可以列出其中的一些,那就太好了.

I realise that it is possible to do so in certain versions and vendors of database servers. It would be nice if you could list down for a few of them.

Oracle:

SELECT DATA_LENGTH, DATA_PRECISION
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = :TableName
AND COLUMN_NAME = :ColumnName

Firebird(+ Interbase):

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(未测试!):

MySql (Not Tested !) :

SELECT
  NUMERIC_PRECISION,  NUMERIC_SCALE
FROM
  INFORMATION_SCHEMA.COLUMNS
WHERE
  TABLE_NAME  = :TableName AND
  COLUMN_NAME = :ColumnName