SAS获取num类型十进制列精度/刻度及导出准确元数据方法
问题描述
从dictionary_columns导出数据并筛选type="num"时,所有列的precision值为"0"、scale值为".",但实际数据验证发现存在数十至数百个精度16、小数位4和精度16、小数位2的列,且所有type=num的列length均为8。需要以下任意一种解决方案:
- 导出包含完整准确数据类型信息的数据字典
- 导出所有现有表的完整准确建表语句
针对数据库管理员的解决方案
SAS中指定format后,对应值会存储在dictionary_columns.format字段中,执行%ds2csv时SAS会遵循该format规则。可按以下步骤操作:
- 导出
dictionary_columns数据集 - 基于
dictionary_columns生成建表SQL语句 - 对于SAS变量类型为
char的列,映射为varchar(SAS列长度) - 对于SAS变量类型为
num的列,依据dictionary_columns.format中的信息,选择合适的类型(如integer、decimal(precision, scale)等)
内容的提问来源于stack exchange,提问作者spioter
相关产品推荐
相关产品推荐

