如何查询数据库表定义中NUMBER类型列的小数位数?
获取Oracle列定义的小数位数
你没法直接用自定义的decimal_numbers()函数从表数据里拿到列定义的小数位数,得查Oracle的数据字典视图:
- 针对当前用户的表,用
user_tab_columns视图,其中data_scale字段就对应NUMBER(p,s)里的小数位数s - 执行以下查询就能得到你要的结果:
SELECT data_scale AS num_decimals FROM user_tab_columns WHERE table_name = 'FOO' AND column_name = 'SOMETHING';
这个查询会直接返回6,就是你定义列时设置的小数位数。
如果要查询其他用户名下的表,改用all_tab_columns或dba_tab_columns,额外加上owner = '用户名'的条件即可。
内容的提问来源于stack exchange,提问作者Nicolás Rivera
相关产品推荐
相关产品推荐

