日期:2014-05-17  浏览次数:20867 次

如何用PL/SQL语言生成动态的EXECL文件
要求:EXECL表格中的字段内容可变.表格中的数据来源于数据库.
求教:如何实现?

------解决方案--------------------
CREATE OR REPLACE PROCEDURE csv (
col_1 IN VARCHAR2 DEFAULT NULL
,col_2 IN VARCHAR2 DEFAULT NULL
)
IS
wk_data VARCHAR2(1024); 
wk_file_name VARCHAR2(1024); 
stmt_sql VARCHAR2(2048) DEFAULT NULL; 
type meisai_type IS REF CURSOR; 
meisai_cur meisai_type; 
db_col_1 VARCHAR2(10);
db_col_2 VARCHAR2(10);
BEGIN
wk_file_name := 'TEST.CSV';
--[ CSV FILE OUT]
owa_util.mime_header('application/cvs', FALSE);
HTP.P('Content-Disposition: attachment; filename='||wk_file_name);
owa_util.http_header_close;

stmt_sql := ' SELECT '||col_1||','||col_2||' ';
stmt_sql := stmt_sql || ' FROM SCOTT.EMP ';
  
OPEN meisai_cur FOR stmt_sql;
LOOP
FETCH meisai_cur
INTO db_col_1
,db_col_2;
EXIT WHEN meisai_cur%NOTFOUND;
wk_data := db_col_1 ||','||
db_col_2 ;
HTP.PRN(wk_data);
HTP.PRN(chr(13) || chr(10));
END LOOP;
CLOSE meisai_cur;
END csv;
------------------------
用参数控制。

关注下,好像有点困难
------解决方案--------------------
EXCEL 可从其它数据源导入数据.你可以把SQL 写在EXCEL 中的:QUERY 中.以后你只要刷新就可以了.