系统环境HP-UNIX + Oracle 10g
假如有一个sql文件 abc.sql
set pagesize 0
set feedback off
set heading offspool /abc/123.spoolselect count(1) from input_tbl where insert_date < add_months(sysdate,&1);spool off
exit
我在shell中写了下述一行命令sqlplus -s username/passsword@dbname@${HOME}abc.sql -2  把-2作为参数传入到 abc.sql文件中
现在遇到一个问题,在生成的123.spool文件中 第一行个第二行永远都是没有被变量替换和替换过的SQL语句。old   1: select count(1) from input_tbl where insert_date < add_months(sysdate,&1)
new   1: select count(1) from input_tbl where insert_date < add_months(sysdate,-2)
         1          因为生成的这个123.spool文件 我要继续拿来分析生成报表 实际上在这个文件中 只有第三行数字 1 才是我想要的结果 
现在的问题是有什么办法 或者配置选项 能让生成的文件不显示第一行和第二行的SQL语句?                                                            

解决方案 »

  1.   

    加上:
    SET VERIFY OFF
      

  2.   


    谢谢 已经搞定 网上查了很多SQLPLUS的配置选项 都没有提过这个VERIFY 囧rz 
      

  3.   

    我加了 SET VERIFY OFF  还是不起作用呢?
    Linux scana 2.6.18-53.el5xen , Oracle Database 10gset pagesize  0;   -- 输出每页行数,缺省为24,为了避免分页,可设定为0
    set heading off;   -- 输出域标题,缺省为on
    set echo off;      -- 显示start启动的脚本中的每个sql命令,缺省为on
    set feedback on;   -- 回显本次sql命令处理的记录条数,缺省为on
    set termout off;   -- 显示脚本中的命令的执行结果,缺省为on
    set trimout on;    -- 去除标准输出每行的拖尾空格,缺省为off
    set trimspool on;  -- 去除重定向(spool)输出每行的拖尾空格,缺省为off
    set linesize 30000; -- 输出一行字符个数,缺省为80
    set numwidth 22;   -- 输出number类型域长度,缺省为10
    SET VERIFY OFF ;   -- 去掉输出结果中的脚本回写
    set colsep |       -- 域输出分隔符 缺省为 TAB键
    alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';  -- 修改日期显示格式[gmcc@tmpana ~]$ cat test_spool2.txt
    SQL> select * from tmp_user where rownum<10;
    admin |8a7a7cad2022005c0120232b19f40013|admin  |系统管理员 |0|
    SQL>spool off;