set termout off
set echo off
set feedback off
set heading off
set verify off
--pagesize 0用来去除空行
set pagesize 0
set trimspool on
set trimout on
set colsep |
spool /home/lihf/data/testdata.txt
select * from TEST_TAB;
spool off这是我的脚本,但是我要求的结果是形如
|www.zte.com|[email protected]|周周|B4-20080052|这样的,但结果是
|12  |test1               |31-DEC-99|
我设的set trimspool on为什么不好用呢

解决方案 »

  1.   

    spool这个东东可不好用了, 我都是整出来用perl再格式化
    不过楼主的这个需求是可以实现的:
    SQL> select trim(empno)||'|'||trim(ename)||'|'||trim(job)||'|'||trim(mgr) from emp;
    7369|SMITH|CLERK|7902
    7499|ALLEN|SALESMAN|7698
    7521|WARD|SALESMAN|7698
    7566|JONES|MANAGER|7839
    7654|MARTIN|SALESMAN|7698
    7698|BLAKE|MANAGER|7839
    7782|CLARK|MANAGER|7839
    7788|SCOTT|ANALYST|7566
    7839|KING|PRESIDENT|
    7844|TURNER|SALESMAN|7698
    7876|ADAMS|CLERK|7788
    7900|JAMES|CLERK|7698
    7902|FORD|ANALYST|7566
    7934|MILLER|CLERK|7782
      

  2.   

    是不是要 col test1(这一列的名字) format a10(限定宽度)
      

  3.   

    这样做是可以的:
    set termout off
    set echo off
    set feedback off
    set heading off
    set verify off
    --pagesize 0用来去除空行
    set pagesize 0
    set trimspool on
    set trimout on
    spool /home/lihf/data/testdata.txt
    select 列1||'|'||列2||'|'||列3... from TEST_TAB;
    spool off