如何在 Oracle 中正确假脱机

How to spool in Oracle properly

我创建了一个假脱机命令来将数据从 Oracle 导出到 csv。文件。这是:

    set echo off
    set verify off
    set feedback off
    set heading on
    set termout on
    set pages 50000
    set newpage none
    spool Y:\Marketing\Nick\OptivoList\test.csv
    Select EMAIL || ',' || ',' || GENDER
    from Email_test;
    spool off;
    exit;

它创建这样的输出:

EMAIL,GENDER
-----------------
test1@test.com, M
test2@test.com, W
test3@test.com, M

问题 - 如何摆脱 headers 和数据之间的“--------”输出?

有两种方法-

  1. 关闭下划线

例如,

SQL> set underline off
SQL> select empno, ename from emp;

     EMPNO,ENAME
      7369,SMITH
      7499,ALLEN
      7521,WARD
      7566,JONES
      7654,MARTIN
      7698,BLAKE
      7782,CLARK
      7788,SCOTT
      7839,KING
      7844,TURNER
      7876,ADAMS
      7900,JAMES
      7902,FORD
      7934,MILLER

14 rows selected.

SQL>
  1. 页面大小为 0
  2. 的自定义列 headers

您需要将 pagesize 设置为零。这将抑制 列 headers 和重复列 headers。然后,使用 UNION ALL 语句应用您的 自定义列名称

例如,

SQL> set pagesize 0
SQL> SELECT 'EMPNO' ||' , '|| 'ENAME' FROM DUAL
  2   UNION ALL
  3   SELECT EMPNO||' , '||ENAME FROM EMP
  4   /
EMPNO , ENAME
7369 , SMITH
7499 , ALLEN
7521 , WARD
7566 , JONES
7654 , MARTIN
7698 , BLAKE
7782 , CLARK
7788 , SCOTT
7839 , KING
7844 , TURNER
7876 , ADAMS
7900 , JAMES
7902 , FORD
7934 , MILLER

15 rows selected.

SQL>