oracle - 如何找出甲骨文号码的位数

标签 oracle plsql precision

我在 oracle 中有一个表,如下所示:

name              |     type    | nullable  
------------------------------------------
person_name       | varchar(20) | yes  
weight_coeficient | number      | yes
...

我怎样才能算出weight_coeficient的值有多少位?例如:

3.0123456789 有 11 位数字 ( precision = 11) 和小数点后 10 位数字 ( scale = 10)

是否有任何 sql 命令/函数可以执行此操作,例如返回 11 的 GetPrecision( select.. )

另请注意,表的定义未指定小数位数和精度。据我所知,最大精度适用于所有数字。所以我对找出定义的精度(= 48)不感兴趣,而是对表中特定值的精度感兴趣。仅使用 oracle 命令可以吗?

提前谢谢您,
JP

最佳答案

怎么样....

SELECT LENGTH(TRANSLATE(TO_CHAR(3.0123456789),'1234567890.-','1234567890')) 
FROM dual

翻译只是删除非数字字符.-

关于oracle - 如何找出甲骨文号码的位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941413/

相关文章:

java - JDBC 类型 : -102 没有方言映射

oracle - 在 Oracle 中从十六进制编码的 CLOB 转换为 BLOB

oracle - 调试 Oracle 批量 DML 错误 - 如何确定哪个值导致了错误?

C++ - 使频率加起来为 1 的漂亮方法

Oracle SQL Developer 数据库导出成果在 2 年内实现了两位数增长

java - 我可以在创建 EntityManager 之前设置架构吗?

java - 尝试计算大图层的 native 边界框时地理服务器超时

sql - 如何统计表中某列的每个值?

c++ - C++ 中的高斯积分不起作用。为什么?

oracle - Oracle NUMBER的小数位数如何比精度大?