SELECT不显示列名

时间:2013-12-02 12:20:09

标签: sql oracle sqlplus

当我不使用SET命令时,我得到的结果如下:

SQL> select * from <tablename>;

         NAME          PLACE        AGE         GENDER        DESTINATION
    -------------- -------------- ---------   ------------  ---------------
          Joy         Scotland      22           Male          California

当我使用SET变量时:

SET LIN 32000 pagesize 0

SQL> select * from <tablename>;

我得到了更好的格式但不太好的结果:

 Joy Scotland                                     22 Male                                                                             California
  1. 如何以更好的方式显示输出(例如,列用分隔符(空格)分隔)
  2. 当我们使用SET时,为什么列标题会消失?我该如何改进呢?

3 个答案:

答案 0 :(得分:2)

  

SET PAGES[IZE] {14 | n}

     

设置iSQL * Plus中每页输出的行数,以及   命令行和Windows中每页输出的行数   GUI。 您可以将PAGESIZE设置为零以取消所有标题,页面   中断,标题,初始空行和其他格式   信息。

您将pagesize设置为0,这就是您没有获得标题的原因。尝试1或默认14。

SET LIN 32000 pagesize 1
- OR -
SET LIN 32000 PAGES 1

顺便说一下,这不是SQL。这是一堆用于控制数据库行为的Oracle命令。

答案 1 :(得分:0)

以下链接提供了有关在Oracle SQL Plus中格式化输出结果的详细信息。

http://www.adp-gmbh.ch/ora/sqlplus/beautify.html
http://larig.wordpress.com/2011/05/29/formatting-oracle-output-in-sqlplus/

此致

答案 2 :(得分:0)

要通过sqlplus将数据导出到csv文件,我使用像

这样的脚本
set colsep ";"    -- column separator
set pagesize 0    -- no column headings
set feedback off  -- no "xx rows selected"
set trimspool on  -- no line-padding
set linesize 9999 -- length of output line
set verify off    -- no output of parameter replacements
set termout off   -- no console output
spool export.csv  -- redirect output to file
select * from mytable;
spool off         -- stop output to file

如果省略set pagesize 0,您将获得列标题,但缩短为字段长度并重复每(pagesize-3)行。