SPOOL命令可以将一条或多条SQL语句的输出结果保存到UNIX和Windows的操作系统文件中:
SQL> SET LINESIZE 180
SQL> SPOOL employee.lst
SQL> SELECT emp_id, lastname, salary, manager FROM employee;
SQL> SPOOL OFF;
默认时,假脱机文本文件的保存名为fileename.lst。尽管默认方式是在一个文件中保存输出结果,但也可以将结果发送到打印机。如果使用SQL编写SQL脚本,那么应该使用假脱机文件,本书附录给出了这方面的例子。
可以增加或替换一个己有的假脱机文件(默认为替换)。以下是此命令的完整语法:
SPOOL { filename[.ext] [CRE[ATE]|REP[LACE]|APP[END]] | OFF | OUT }
下面说明不同选项所代表的含义。
FILE_NAME:指定假脱机文件的名字。文件扩展名是可选的,在大多数情况下默认的扩展名为 “lst”
CREATE:创建新文件。
REPLACE:替换已有文件的内容并创建新文件(若文件不存在的话)。此选项为默认选项。
APPEND:将缓冲区的内容添加到指定文件的末尾。
OFF:停止假脱机。
OUT:停止假脱机并将文件发送到默认打印机上。此选项在某些操作系统下不能使用。
SPOOL命令可以有许多用途。例如,可方便地利用SPOOL命令捕捉SELECT语句的结果。首先,指定HEADING,FEEDBACK和LINESIZE变量控制输出格式。下面是一个例子:
SQL> SPOOL /u01/app/oracle/data/employees.txt;
SQL> SELECT * FROM hr.employees;
SQL> SPOOL OFF;
employees.txt文件捕捉HR.EMPLOYEES表中的所有数据。然后利用SQL*Loader实用程序把数据装入另一个表。
store
在一个SQL*Plus会话中,运行一个特定的SQL脚本或命令,很可能需要改变环境设置。如果还想要保留原来的设置以便今后使用,可以使用STORE命令。在将这些值存储在一个脚本中后,任何时候都可以运行此脚本复原所有变量的这些值.因此,如果运行了需要改变某些变量值的报告,在完成该报告后只要运行包含原来变量值的脚本就可以复原各个变量。
下例说明如何使用STORE命令保存SQL*Plus的环境设置:
SQL> STORE SET mysqlplus.sql
Created file mysqlplus.sql
执行上面的命令将把所有当前环境偵存储到一个名为sqlplus.sql的文件中。在用一个文件保存了常用的环境变量后,在需要时只要执行此脚本就可以重新使用它们为了复原所有系统变量的已存储的值,输入:
SQL> START mysqlplus.sql
如果愿意,可以仅输入@mysqlplus.sql或@@mysqlplus.sql执行此脚本.也可以添加此脚本到用户概要脚本,使每次启动SQL*Plus时,所有变量具有所需要的值。STORE命令有三个选项:CREATE.REPLACE或APPEND。默认为CREATE,此选项创建一个新文件。如果要替换一个已有文件并保存SQL*Plus命令,可以使用REPLACE选项。如果需要给已有文件添加命令,则使用APPEND选项。




