oracle SQL查询以获取列的精度值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7318683/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
SQL query to get the precision value of a column
提问by user917670
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.
我需要一个 sql 查询来获取某些列的精度值。我主要关注十进制类型的列,我需要相同的精度值。
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.
我意识到在某些版本和供应商的数据库服务器中可以这样做。如果你能列出其中的一些,那就太好了。
采纳答案by Hugh Jones
Oracle:
甲骨文:
SELECT DATA_LENGTH, DATA_PRECISION
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = :TableName
AND COLUMN_NAME = :ColumnName
Firebird (+ Interbase) :
火鸟(+ 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 !) :
MySql(未测试!):
SELECT
NUMERIC_PRECISION, NUMERIC_SCALE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = :TableName AND
COLUMN_NAME = :ColumnName
回答by Baz1nga
for sql server:
对于 sql 服务器:
select precision from sys.columns where name='<column_name>'
for oracle:
甲骨文:
select data_precision from all_tab_columns where column_name = '<columnName>'
回答by Martin Smith
For SQL Server you can also use NUMERIC_PRECISION
in INFORMATION_SCHEMA.COLUMNS
.
对于 SQL Server,您还可以NUMERIC_PRECISION
在INFORMATION_SCHEMA.COLUMNS
.
I assume this may well be portable.
我认为这很可能是便携式的。
回答by Andomar
For SQL Server, it's:
对于 SQL Server,它是:
select object_name(object_id), name, precision from sys.columns
回答by ain
For FireBird and InterBase
对于 FireBird 和 InterBase
SELECT
RDB$FIELD_PRECISION, RDB$FIELD_SCALE
FROM RDB$FIELDS
WHERE RDB$FIELD_NAME = columnsDomainName