use*_*670 4 sql sql-server oracle
我需要一个sql查询获取某些列的精度值.我主要关注十进制类型列,我需要相同的精度值.
我意识到在某些版本和数据库服务器供应商中可以这样做.如果你能列出其中的一些,那就太好了.
甲骨文:
SELECT DATA_LENGTH, DATA_PRECISION
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = :TableName
AND COLUMN_NAME = :ColumnName
Run Code Online (Sandbox Code Playgroud)
火鸟(+ 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
Run Code Online (Sandbox Code Playgroud)
MySql(未测试!):
SELECT
NUMERIC_PRECISION, NUMERIC_SCALE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = :TableName AND
COLUMN_NAME = :ColumnName
Run Code Online (Sandbox Code Playgroud)
对于SQL Server:
select precision from sys.columns where name='<column_name>'
Run Code Online (Sandbox Code Playgroud)
对于oracle:
select data_precision from all_tab_columns where column_name = '<columnName>'
Run Code Online (Sandbox Code Playgroud)