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