想写一个存储过程,把查询表的结果生成一个excel文件。单独存储过程就可以实现,不要涉及别的语言比如java,asp在页面来实现

解决方案 »

  1.   

    真够懒的,可以试试生成csv格式的文件
      

  2.   


    我只会在页面上生成csv啊,不是懒的问题,不过目前我已经找到办法了,要用到utl_file,呵呵SQL> CREATE OR REPLACE PROCEDURE P_WRITE_EMP AS
    2 V_FILE UTL_FILE.FILE_TYPE;
    3 V_BUFFER VARCHAR2(32767);
    4 BEGIN
    5 V_FILE := UTL_FILE.FOPEN('D_OUTPUT', 'EMP' || TO_CHAR(SYSDATE, 'YYYY_MM_DD') || '.csv', 'w', 32767);
    6 V_BUFFER := 'EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO';
    7 UTL_FILE.PUT_LINE(V_FILE, V_BUFFER);
    8 FOR I IN 
    9 (
    10 SELECT '"' || EMPNO || '","' || 
    11 ENAME || '","' || 
    12 JOB || '","' || 
    13 MGR || '","' || 
    14 HIREDATE || '","' || 
    15 SAL || '","' || 
    16 COMM || '","' || 
    17 DEPTNO || '"' RESULT
    18 FROM EMP
    19 ) LOOP
    20 UTL_FILE.PUT_LINE(V_FILE, I.RESULT);
    21 END LOOP;
    22 UTL_FILE.FCLOSE(V_FILE);
    23 END;