如果独立的sql语句如下,在SQL PLUS上是可以实现的
set linesize 200 
set term off verify off feedback off pagesize 999 
set up html on entmap ON spool on preformat off
spool c:\tables.xls
select * from dba_jobs;
spool off;
但我把它弄到一个存储过程以后,如下:
create procedure test
as 
begin
set linesize 200 
set term off verify off feedback off pagesize 999 
set up html on entmap ON spool on preformat off
spool c:\tables.xls
select * from dba_jobs;
spool off;
ends;就出错了,为什么会出错呢?
难道set那几行在存储过程里面不能用?

解决方案 »

  1.   

    呵呵 
    SET /SPOOL等等这些是SQLPLUS的命令  不是存储过程的命令
      

  2.   

    set linesize 200 
    set term off verify off feedback off pagesize 999 
    set up html on entmap ON spool on preformat off
    spool c:\tables.xls
    select * from dba_jobs;
    spool off;把这些配置都放在test.sql文件里,再用
    sql>@path/test.sql;
    执行
      

  3.   

    那有没办法在存储过程中把结果直接输出到 输出EXCEL报表 呢?
      

  4.   

    你可以用Oracle自带的utl_file包试试看。不过没有现成的脚本,你找找相关资料。