记录有没有SPOOL 到文本呢
SPOOL d:\12.txt

解决方案 »

  1.   

    SPOOL C:\A.TXT
    SQL> SELECT 1 AS A FROM DUAL;         A                                                                      
    ----------                                                                      
             1                                                                      SQL> SPOOL OFF
      

  2.   

    晕,spool是sql*plus的命令,存储过程怎么用的了!!
    用户通过网页,说明有web服务器,3层结构的程序,想要生成一个文件下到客户端只怕要弄点别的办法了,单纯从oracle数据库命令想办法是不行的
      

  3.   

    半仙,我试了spool命令是不可以在存储过程中用的,难道就没别的办法了,用 utl_file 包 可以嘛,具体怎么用,utl_file 可以指定别的服务器的路径嘛?
      

  4.   

    text文件的导入
    写入文件的例子
    先修改或添加init.ora的UTL_FILE_DIR参数
    例如:
    utl_file_dir=G:\oracle\temp    //保存文本的路径为G:\oracle\temp
    此过程将用户FILE_OWNER的过程FILE_NAME的代码保存到G:\oracle\temp\TEXT.TXT中
    create or replace procedure PRO_TO_TXT(FILE_OWNER VARCHAR2,FILE_NAME VARCHAR2)
    is
       file_handle  utl_file.file_type;
       STOR_TEXT  VARCHAR2(4000);
       N NUMBER;
    I NUMBER;
    begin
    I:=1;
        SELECT MAX(LINE) INTO N FROM ALL_SOURCE WHERE OWNER=FILE_OWNER AND  NAME=FILE_NAME AND TYPE='PROCEDURE';
    file_handle:=utl_file.fopen('G:\oracle\temp','test.txt','a');
    utl_file.put_line(file_handle,'PROCEDURE NAME:'||FILE_NAME);
    WHILE I<=N LOOP
        SELECT TEXT  INTO STOR_TEXT FROM ALL_SOURCE WHERE OWNER=FILE_OWNER 
    AND NAME=FILE_NAME AND TYPE='PROCEDURE' AND LINE= I;
        I:=I+1;
        utl_file.put_line(file_handle,stor_text);
    END LOOP;
        utl_file.fclose(file_handle);
    commit;
    end PRO_TO_TXT;
    /