科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQLPlus技巧 指定缺省的编辑脚本的目录

SQLPlus技巧 指定缺省的编辑脚本的目录

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文从多个方面讲述了SQLPlus技巧。

作者:赛迪网 云卷云舒 来源:天新网 2008年4月25日

关键字: 数据库 Mssql SQL Server SQL

  • 评论
  • 分享微博
  • 分享邮件

2.将一个表中的数据导出生成一个文本文件,列与列之间以”,”隔开:

set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off 
set timing off
set verify off
set numwidth 38
SPOOL c:\drop_table.sql 
select DEPTNO || ',' || DNAME FROM DEPT;
SPOOL OFF

将上面的内容保存为一个文本文件后,以scott登录,执行该文件后显示结果:

10,ACCOUNTING 
20,RESEARCH 
30,SALES 
40,OPERATIONS

通过上面的两个例子,我们可以将:

set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off 
set timing off
set verify off
set numwidth 38
SPOOL c:\具体的文件名

你要运行的SQL语句SPOOL OFF。

作为一个模版,只要将必要的语句假如这个模版就可以了。

在Oracle的较新版本中,还可以用set colsep命令来实现上面的功能:

SQL> set colsep ,
SQL> select * from dept;
    10,ACCOUNTING   ,NEW YORK
    20,RESEARCH     ,DALLAS
    30,SALES       ,CHICAGO
    40,OPERATIONS   ,BOSTON
    35,aa         ,bb

3.动态生成spool命令所需的文件名。

在我们上面的例子中,spool命令所需要的文件名都是固定的。有时我们需要每天spool一次,并且每次spool的文件名都不相同,如文件名包含当天的日期,该如何实现呢?

column dat1 new_value filename;
select to_char(sysdate,'yyyymmddhh24mi') dat1 from dual; 
spool c:\&&filename..txt 
select * from dept;
spool off;

4.如何从脚本文件中得到Windows环境变量的值:

在windos中:

spool c:\temp\%ORACLE_SID%.txt 
select * from dept; 
... 
spool off

在上面的例子中,通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt。

在Unix中:

spool c:\temp\$ORACLE_SID.txt 
select * from dept; 
... 
spool off

在上面的例子中,通过$ORACLE_SID的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章