Sqlplus查询Oracle表每行仅显示一列,调整linesize无效如何解决
Oracle SQLPlus查询结果单列显示解决方法
你遇到的问题是SQLPlus默认会按字段定义的长度设置显示宽度,当多个字段的默认宽度之和超过你设置的linesize时,就会自动将每列折行单独显示,仅调整linesize、pagesize没有匹配列宽设置就不会生效,可按以下方法解决:
- 手动指定单字段显示宽度
针对你查询的Manager表字段,先执行以下格式化命令再执行查询即可:-- 设置字符类型字段显示宽度,A后面跟的是要显示的字符数,可按需调整 COLUMN FAMILYNAME FORMAT A15 COLUMN PERSONALNAME FORMAT A15 -- 设置数字类型字段显示宽度,用9占位对应最大位数 COLUMN SALARY FORMAT 999999 -- 配合调整行宽,确保大于所有列宽之和避免折行 SET LINESIZE 100 - 全局设置所有字符字段默认显示宽度
如果表字段多不想逐个设置,可以直接调整全局字符字段默认宽度:
该设置会对当前会话所有查询的字符类型字段生效,无需逐个配置COLUMN规则。SET CHARWIDTH 15 SET LINESIZE 200 - 永久生效配置
要是不想每次打开SQLPlus都手动输入以上命令,可以把需要的格式化参数写入SQLPlus安装目录下的glogin.sql文件,或者当前操作系统用户目录下的login.sql文件,每次启动SQLPlus会自动执行配置。
调整后再执行select * from Manager;就能得到正常的横向排列结果:
FAMILYNAME PERSONALNAME SALARY --------------- --------------- -------- Sung Sam 56000 Smith Darwin 54000 P. Fries Chris 63000 Williams Sean 43000
内容的提问来源于stack exchange,提问作者cookythecat
相关产品推荐
相关产品推荐

