Spool to a file with compute : spool « SQL PLUS Session Environment « Oracle PL/SQL Tutorial






SQL>
SQL> create table employees(
  2    empno      NUMBER(4)
  3  , ename      VARCHAR2(8)
  4  , init       VARCHAR2(5)
  5  , job        VARCHAR2(8)
  6  , mgr        NUMBER(4)
  7  , bdate      DATE
  8  , msal       NUMBER(6,2)
  9  , comm       NUMBER(6,2)
 10  , deptno     NUMBER(2) ) ;

Table created.

SQL>
SQL>
SQL> insert into employees values(1,'Jason',  'N',  'TRAINER', 2,   date '1965-12-18',  800 , NULL,  10);

1 row created.

SQL> insert into employees values(2,'Jerry',  'J',  'SALESREP',3,   date '1966-11-19',  1600, 300,   10);

1 row created.

SQL> insert into employees values(3,'Jord',   'T' , 'SALESREP',4,   date '1967-10-21',  1700, 500,   20);

1 row created.

SQL> insert into employees values(4,'Mary',   'J',  'MANAGER', 5,   date '1968-09-22',  1800, NULL,  20);

1 row created.

SQL> insert into employees values(5,'Joe',    'P',  'SALESREP',6,   date '1969-08-23',  1900, 1400,  30);

1 row created.

SQL> insert into employees values(6,'Black',  'R',  'MANAGER', 7,   date '1970-07-24',  2000, NULL,  30);

1 row created.

SQL> insert into employees values(7,'Red',    'A',  'MANAGER', 8,   date '1971-06-25',  2100, NULL,  40);

1 row created.

SQL> insert into employees values(8,'White',  'S',  'TRAINER', 9,   date '1972-05-26',  2200, NULL,  40);

1 row created.

SQL> insert into employees values(9,'Yellow', 'C',  'DIRECTOR',10,  date '1973-04-27',  2300, NULL,  20);

1 row created.

SQL> insert into employees values(10,'Pink',  'J',  'SALESREP',null,date '1974-03-28',  2400, 0,     30);

1 row created.

SQL>
SQL>
SQL>
SQL> --clear   screen
SQL> set     pause off
SQL> break   on deptno skip page -
>         on job
SQL>
SQL> compute sum label total of msal on deptno
SQL> compute count number    of comm on deptno
SQL>
SQL> set     trimspool on
SQL> set     feedback off
SQL> spool   report.txt replace
SQL>
SQL> select  deptno, job, empno, ename, msal, comm
  2  from    employees
  3  order   by deptno, job;

DEPTNO JOB       EMPNO      last_name         MSAL
------ -------- ------ -------------------- ------
    10 SALESREP      2 Jerry                  1600
       TRAINER       1 Jason                   800
****** ********                             ------
count
number
total                                         2400

DEPTNO JOB       EMPNO      last_name         MSAL
------ -------- ------ -------------------- ------
    20 DIRECTOR      9 Yellow                 2300
       MANAGER       4 Mary                   1800
       SALESREP      3 Jord                   1700
****** ********                             ------
count
number
total                                         5800

DEPTNO JOB       EMPNO      last_name         MSAL
------ -------- ------ -------------------- ------
    30 MANAGER       6 Black                  2000
       SALESREP     10 Pink                   2400
                     5 Joe                    1900
****** ********                             ------
count
number
total                                         6300

DEPTNO JOB       EMPNO      last_name         MSAL
------ -------- ------ -------------------- ------
    40 MANAGER       7 Red                    2100
       TRAINER       8 White                  2200
****** ********                             ------
count
number
total                                         4300
SQL>
SQL> spool   off
SQL>
SQL> clear   computes
computes cleared
SQL> clear   breaks
breaks cleared
SQL> set     pause on
SQL> set     feedback on
SQL>
SQL>
SQL> drop table employees;

Table dropped.

SQL>
SQL> set pause off








29.55.spool
29.55.1.Use Spoll to save query to a file
29.55.2.Spool to a file with compute
29.55.3.Spool result to a text file
29.55.4.Extracts data from the emp table and writes it to a text file in a comma-delimited format