执行SQL查询时DBMS返回多个#符号值的技术问询
问题排查与解决:SQL查询字段显示#替代值
问题现象
执行指定SQL查询时,DBMS返回的W_Age、Salary、section_ID字段值被#符号替代。
问题原因
你给数值类型字段设置了字符型格式(A开头的FORMAT),这种格式不匹配数值类型的显示规则,当数值的显示需求与字符格式的设置冲突时,就会用#填充表示格式不兼容或溢出。
具体对应问题:
W_Age是数值类型,却设置了FORMAT A2Salary是数值类型,却设置了FORMAT A10section_ID是数值类型,却设置了FORMAT A2
解决方法
将数值类型字段的FORMAT改为数值专用格式(用9表示数字位,可按需添加千分位、小数点等),修改后的SQL脚本如下:
ACCEPT Worker_ID PROMPT '请输入员工ID:' COLUMN Worker_ID FORMAT A4 COLUMN W_First_Name FORMAT A10 COLUMN W_Last_Name FORMAT A20 COLUMN W_Age FORMAT 99 -- 适配两位数值型年龄 COLUMN Salary FORMAT 999999 -- 适配6位以内数值型薪资 COLUMN section_ID FORMAT 99 -- 适配两位数值型部门ID COLUMN section_Name FORMAT A12 TTITLE CENTER '员工基本信息及所属部门' SKIP 2; SELECT w.Worker_ID, w.W_First_Name, w.W_Last_Name, w.W_Age, w.Salary, s.section_ID, s.section_Name FROM Worker w JOIN Section s ON (w.Section_ID = s.section_ID) WHERE w.Worker_ID = '&Worker_ID';
格式补充说明
9:代表一个数字位,不显示前导零- 若需要显示千分位,可写成
99,999;若需要固定位数(如强制两位部门ID),可写成00
内容的提问来源于stack exchange,提问作者zuo hao
相关产品推荐
相关产品推荐

