我需要一個sql查詢來獲取某些列的精度值。我主要關注一個十進制類型的列,我需要相同的精度值。SQL查詢來獲得列的精度值
我意識到在數據庫服務器的某些版本和供應商中可以這樣做。如果你能列出其中的一些,這將是很好的。
我需要一個sql查詢來獲取某些列的精度值。我主要關注一個十進制類型的列,我需要相同的精度值。SQL查詢來獲得列的精度值
我意識到在數據庫服務器的某些版本和供應商中可以這樣做。如果你能列出其中的一些,這將是很好的。
甲骨文:
SELECT DATA_LENGTH, DATA_PRECISION
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = :TableName
AND COLUMN_NAME = :ColumnName
火鳥(+ 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的:
SELECT
NUMERIC_PRECISION, NUMERIC_SCALE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = :TableName AND
COLUMN_NAME = :ColumnName
對於SQL Server,它是:
select object_name(object_id), name, precision from sys.columns
對於SQL Server,您還可以在INFORMATION_SCHEMA.COLUMNS
中使用NUMERIC_PRECISION
。
我認爲這可能是可移植的。
對於火鳥的InterBase
SELECT
RDB$FIELD_PRECISION, RDB$FIELD_SCALE
FROM RDB$FIELDS
WHERE RDB$FIELD_NAME = columnsDomainName
對於SQL Server:
select precision from sys.columns where name='<column_name>'
對於Oracle:
select data_precision from all_tab_columns where column_name = '<columnName>'