首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLPlus报表中的列显示的时间比数据库列的长度长

SQLPlus报表中的列显示的时间比数据库列的长度长
EN

Stack Overflow用户
提问于 2021-03-09 00:20:14
回答 2查看 147关注 0票数 0

我有许多sql报告,它们过去工作得很好。然而,最近,它们已经开始输出,列宽比它们应该的更长。根据Oracle的文档,如果sql中的一个列在报表开头没有显式的"COLUMN“定义,例如'column example_col heading "Eg col" format A50',它应该以与数据库表中列的定义相同的宽度显示,也就是说,如果该列被定义为varchar2(10),它应该以10个字符的宽度显示。

以前,这是很好的,但是最近,这些列中的一些已经开始以更大的宽度显示,这使得报表的行超出了行大小,扩展到了第二行,从而降低了报表的可读性。

我只是想看看以前是否有人遇到过这种行为,并可能知道原因是什么?下面是其中一个报告的前后图片,这样您就可以看到问题了。

问题开始前的报告

问题发生后报告

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-11 18:15:17

结果是,在将NLS_LANG环境变量设置为AMERICAN_AMERICA.AL32UTF8时出现了问题。这将导致在SQLPlus中输出时扩展列宽度。解决方案是将这个环境变量更改为AMERICAN_AMERICA.WE8ISO8859P1。

有关Oracle Metalink的详细信息如下:

在不同的SQL*Plus会话中运行相同语句的症状会导致输出的长度不同。 第1场会议: SQL>选择sysdate,sysdate从对偶;SYSDATE SYSDATE

10月30日至08年10月30日至8日

第2场会议:

SQL>选择sysdate,sysdate从对偶;SYSDATE SYSDATE

10月30日至08年10月30日至8日

因为NLS_LANG字符集决定输出的显示方式。

当使用多字节字符集时,列宽度将更大。为NLS_LANG设置解决方案字符集以获得所需的输出。如果需要“长”输出,请使用UTF8作为字符集。确保客户端操作系统能够处理选定的字符集。

票数 0
EN

Stack Overflow用户

发布于 2021-03-09 06:53:21

从我的观点来看,这是COLUMN

  • 看起来像在问题开始之前的报告,使用列格式,这样输出看起来很好。
  • 看起来问题开始后的报表不再使用列格式了

问题是:在“之前”和“之后”之间发生了什么变化?有几种可能性:

  • 删除了COLUMN格式行
  • 使用了CLEAR COLUMNS,因此所有列设置都丢失了。
  • 检查
    • 用于创建报表的.SQL文件
    • login.sql
    • glogin.sql
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66539086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档