如何找出oracle数字的位数

Ioa*_*rau 2 oracle precision plsql

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

name              |     type    | nullable  
------------------------------------------
person_name       | varchar(20) | yes  
weight_coeficient | number      | yes
...
Run Code Online (Sandbox Code Playgroud)

如何计算weight_coeficient的值有多少位数?例如:

3.0123456789有11位数(精度 = 11)和小数点后10位数(刻度 = 10)

是否有任何sql命令/函数可以做到这一点,类似的东西GetPrecision( select.. )返回11?

另请注意,表的定义未指定比例和精度.据我所知,所有数字都应用了最大精度.所以我不想找出定义的精度(= 48),而是表中特定值的精度.这可能只是使用oracle命令吗?

谢谢你,
JP

Kev*_*ton 5

怎么样....

SELECT LENGTH(TRANSLATE(TO_CHAR(3.0123456789),'1234567890.-','1234567890')) 
FROM dual
Run Code Online (Sandbox Code Playgroud)

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

  • @John Paul:来自Coeficients的名字='John Paul'的`SELECT LENGTH(TRANSLATE(weight_coeficient),'1234567890 .-','1234567890'))你会好多了. (2认同)