【问题标题】:Not getting all the column in a single line, one column displaying down even though I have space没有在一行中获取所有列,即使我有空间也显示一列
【发布时间】:2019-09-29 16:20:04
【问题描述】:

我希望“dept_no”列在一行中显示在“comm”列旁边。 为什么它在第 3 行条目后再次显示列名?

我想要一个干净的表,所有列都显示在一行中,数据输入向下,而不像图像中看到的那样重复列

【问题讨论】:

  • 您确定您使用的是 sql-server 而不是 Oracle?
  • 为什么要标记 pl\sql 和 SQL server? SQL Server 使用 T-SQL,Oracle 使用 PL\SQL。 看起来 像 sqlcmd,因此有一个新行的原因是因为您进入了行字符限制。您为什么要尝试将 SQLCMS 用作 GUI?这是一个 CLI。

标签: sql oracle sqlplus


【解决方案1】:

关于表内容,我们讨论的是 Oracle 和 SQL*Plus 命令行工具以及 Scott 的示例模式(它的 EMP 表)。

这就是你现在拥有的:

SQL> set linesize 80
SQL>
SQL> select * From emp where rownum < 5;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM
---------- ---------- --------- ---------- -------- ---------- ----------
    DEPTNO
----------
      7369 SMITH      CLERK           7902 17.12.80        800
        20

      7499 ALLEN      SALESMAN        7698 20.02.81       1600        300
        30

      7521 WARD       SALESMAN        7698 22.02.81       1250        500
        30


     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM
---------- ---------- --------- ---------- -------- ---------- ----------
    DEPTNO
----------
      7566 JONES      MANAGER         7839 02.04.81       2975
        20


SQL>

显然,所有这些列都不适合(默认)80 个字符的行宽,所以 - 放大它:

SQL> set linesize 100
SQL>
SQL> select * From emp where rownum < 5;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17.12.80        800                    20
      7499 ALLEN      SALESMAN        7698 20.02.81       1600        300         30
      7521 WARD       SALESMAN        7698 22.02.81       1250        500         30
      7566 JONES      MANAGER         7839 02.04.81       2975                    20

SQL>

也许您必须调整命令提示符窗口的属性(“屏幕缓冲区大小”和“窗口大小”的宽度),即也将它们放大。


最后,请注意您(和我)显示“原始”查询结果的方式:看看列标题如何重复?那是因为pagesize 太低了。将 linesize 恢复为 80,但应用 set pagesize 命令:

SQL> set linesize 80
SQL> set pagesize 100
SQL>
SQL> select * From emp where rownum < 5;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM
---------- ---------- --------- ---------- -------- ---------- ----------
    DEPTNO
----------
      7369 SMITH      CLERK           7902 17.12.80        800
        20

      7499 ALLEN      SALESMAN        7698 20.02.81       1600        300
        30

      7521 WARD       SALESMAN        7698 22.02.81       1250        500
        30

      7566 JONES      MANAGER         7839 02.04.81       2975
        20


SQL>

看到了吗?不再重复标题(如果结果超过 100 行,则重复)。


Here 是所有 SQL*Plus set 命令的列表;查看更多信息。

【讨论】:

  • 小脚,你怎么对 Oracle 了解这么多?
  • 感谢您的详细解释@Littlefoot。我将 linesize 设置为 90 并且它起作用了。 linesize 80 和之前一样
  • 不客气。我知道80和以前一样;这就是我所说的。我将其恢复为 80,是为了展示 PAGESIZE 的作用。
猜你喜欢
  • 2019-07-15
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 2018-09-01
  • 2018-03-09
相关资源
最近更新 更多