Oracle 下载过程不适用于某些文件

Oracle 下载过程不适用于某些文件,oracle,stored-procedures,plsql,oracle-apex,Oracle,Stored Procedures,Plsql,Oracle Apex,我一直对用于下载文件的APEX过程有问题(代码直接取自Oracle网页): 该过程适用于pdf文件和图像,但不适用于excel或word文件,这给了我一个“ORACLE 500-内部服务器错误”。 有人知道如何解决这个问题吗 谢谢是否有一个服务器日志文件可以提供出错原因的更多详细信息?无法处理某些文件或任何文件?可能在生成的文件名字段中发生了一些有趣的事情。如果您将其更改为对所有文件使用静态文件名,会发生什么情况?感谢各位的回复@输入错误,如果文件具有pdf扩展名,则始终有效。我也试过上传图片,

我一直对用于下载文件的APEX过程有问题(代码直接取自Oracle网页):

该过程适用于pdf文件和图像,但不适用于excel或word文件,这给了我一个“ORACLE 500-内部服务器错误”。 有人知道如何解决这个问题吗


谢谢

是否有一个服务器日志文件可以提供出错原因的更多详细信息?无法处理某些文件或任何文件?可能在生成的文件名字段中发生了一些有趣的事情。如果您将其更改为对所有文件使用静态文件名,会发生什么情况?感谢各位的回复@输入错误,如果文件具有pdf扩展名,则始终有效。我也试过上传图片,而且效果也不错。问题出在“docx”或“xls”文件上。@JeffreyKemp,我一开始工作,就会给它一个尝试。有没有一个服务器日志文件可以提供更多错误的详细信息?某些文件或任何文件不工作?可能在生成的文件名字段中发生了一些有趣的事情。如果您将其更改为对所有文件使用静态文件名,会发生什么情况?感谢各位的回复@输入错误,如果文件具有pdf扩展名,则始终有效。我也试过上传图片,而且效果也不错。问题在于“docx”或“xls”文件。@JeffreyKemp,我一开始工作,就会试试看
CREATE OR REPLACE PROCEDURE download_my_file(p_file in number) AS
        v_mime  VARCHAR2(48);
        v_length  NUMBER;
        v_file_name VARCHAR2(2000);
        Lob_loc  BLOB;
BEGIN
        SELECT MIME_TYPE, BLOB_CONTENT, name,DBMS_LOB.GETLENGTH(blob_content)
                INTO v_mime,lob_loc,v_file_name,v_length
                FROM oehr_file_subject
                WHERE id = p_file;
              --
              -- set up HTTP header
              --
                    -- use an NVL around the mime type and 
                    -- if it is a null set it to application/octect
                    -- application/octect may launch a download window from windows
                    owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE );

                -- set the size so the browser knows how much to download
                htp.p('Content-length: ' || v_length);
                -- the filename will be used by the browser if the users does a save as
                htp.p('Content-Disposition:  attachment; filename="'||replace(replace(substr(v_file_name,instr(v_file_name,'/')+1),chr(10),null),chr(13),null)|| '"');
                -- close the headers            
                owa_util.http_header_close;
                -- download the BLOB
                wpg_docload.download_file( Lob_loc );
end download_my_file;
/