如何在SQL Developer中查询Data_Type的Precision(精度)和Scale(小数位数)
实现查询带精度/小数位的完整数据类型的方法
你需要从Oracle数据库的内置数据字典视图中获取对应字段属性,将数据类型、精度、小数位三个字段拼接即可得到你要的格式。
基础查询语句
如果你只需要查询指定表的字段完整类型,直接用如下写法:
SELECT DATA_TYPE || '(' || DATA_PRECISION || ', ' || DATA_SCALE || ')' AS full_data_type FROM user_tab_columns WHERE table_name = '你的目标表名(注意全大写)';
优化兼容写法
针对不需要精度的字段(比如DATE、CLOB等类型),可以加判断逻辑避免输出无效括号:
SELECT CASE WHEN data_type IN ('CHAR', 'NUMBER', 'VARCHAR2', 'NVARCHAR2') THEN data_type || '(' || nvl(data_precision, 0) || ', ' || nvl(data_scale, 0) || ')' ELSE data_type END AS full_data_type FROM user_tab_columns WHERE table_name = 'YOUR_TABLE_NAME';
用到的三个核心字段说明:
DATA_TYPE:原生数据类型名称,即你当前查询到的内容DATA_PRECISION:数值类型的总长度、字符类型的存储总长度DATA_SCALE:数值类型的小数位长度,非数值类型默认返回0
内容的提问来源于stack exchange,提问作者Adachi
相关产品推荐
相关产品推荐

