我们在运行SQL语句与SQL*Plus命令时,都会产生运行的结果,这些结果有时需要存储到一个文件中以便再阅读或编辑做他用。

✿ 问题的提出

若希望将查询结果以文本文件的格式记录到OS路径的文件中,以便日后对这些结果进行其他的处理,比如发送给相关人员等。那么,如何实现将查询结果转存在文件中呢?

✿ 实现技术

Oracle SQL*Plus提供一个SPOOL命令可实现将屏幕上的显示信息记录到OS路径的文本文件中,文件的默认类型为.lst。

✿ 实现步骤

要实现将查询结果转存到OS路径的文本文件中,先用SPOOL命令指定OS路径和文件名,此外,当结束本次转存时,还必须用SPOOL OFF命令标识本次转存到此结束,如:

SQL> spool c:\dept_data
SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        50 abc            Beiijing
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        60 dlld           tj

已选择6行。

SQL> spoo off

✿ 说明

当使用SPOOL OFF命令标识转存结束后,被转存的文件以正常关闭的方式结束,这时就可以使用或编辑这个.lst文件了。若没有使用SPOOL OFF命令标识本次转存的结束,屏幕上最新的信息可能会不完全被记录到文件中。