Hi,
I am using below:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
Application Express 5.0.3.00.03
ORDS 3.0.11.180.12.34
I have below code to download BFILE and it is running into error: 500 - Internal Server error
DECLARE
l_file_name VARCHAR2(200);
l_bfile BFILE;
l_bfile_length NUMBER;
l_LOG_HEAD_ID NUMBER := 26130;
l_JOB_ID NUMBER := 29072;
BEGIN
l_bfile := null;
SELECT tracefile
INTO l_bfile
FROM xxdm_apex_log_head
WHERE log_head_id = l_LOG_HEAD_ID;
l_bfile_length := DBMS_LOB.getlength (l_bfile);
-- Generate your file content
sys.htp.init;
sys.owa_util.mime_header('application/octet-stream', FALSE, 'UTF-8' );
sys.htp.p('Content-length: ' || l_bfile_length);
sys.htp.p('Content-Disposition: inline; filename="PID_' || l_JOB_ID ||'_trace.trc"' );
sys.owa_util.http_header_close;
sys.wpg_docload.download_file(l_bfile);
apex_application.stop_apex_engine;
EXCEPTION
WHEN OTHERS
THEN
sys.htp.prn('error: '||sqlerrm);
apex_application.stop_apex_engine;
END;
Debug Trace
[TE] url-mapping start: 2018-02-02T23:45:45.324Z duration: 4ms [TE] GET /ords/f?p=104:6:13959344334199::NO:6:P6_LOG_HEAD_ID,P6_JOB_ID:11267,14185 start: 2018-02-02T23:45:45.324Z duration: 70ms
Stack Trace
InternalServerException [statusCode=500, reasons=[]] at oracle.dbtools.apex.ModApexContext.handleError(ModApexContext.java:273) at oracle.dbtools.apex.OWA.downloadFile(OWA.java:117) at oracle.dbtools.apex.hooks.postProcess.CachedItems.postProcess(CachedItems.java:69) at oracle.dbtools.apex.hooks.ProcessorRegistry.postProcess(ProcessorRegistry.java:55) at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:293) at oracle.dbtools.apex.ModApex.doGet(ModApex.java:135) at oracle.dbtools.apex.ModApex.service(ModApex.java:100) at oracle.dbtools.http.entrypoint.Dispatcher.dispatch(Dispatcher.java:125) at oracle.dbtools.http.entrypoint.EntryPoint$FilteredServlet.service(EntryPoint.java:240) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:73) at oracle.dbtools.http.forwarding.QueryFilteringRewrite.doFilter(QueryFilteringRewrite.java:90) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.forwarding.ForwardingFilter.doFilter(ForwardingFilter.java:68) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.cors.CORSPreflightFilter.doFilter(CORSPreflightFilter.java:66) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.cookies.auth.CookieSessionCSRFFilter.doFilter(CookieSessionCSRFFilter.java:75) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.auth.AuthenticationFilter.authenticate(AuthenticationFilter.java:87) at oracle.dbtools.http.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:62) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.url.mapping.RequestMapperImpl.doFilter(RequestMapperImpl.java:125) at oracle.dbtools.url.mapping.URLMappingBase.doFilter(URLMappingBase.java:103) at oracle.dbtools.url.mapping.filter.URLMappingFilter.doFilter(URLMappingFilter.java:124) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.cors.CORSResponseFilter.doFilter(CORSResponseFilter.java:83) at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.errors.ErrorPageFilter.doFilter(ErrorPageFilter.java:94) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.auth.ForceAuthFilter.doFilter(ForceAuthFilter.java:44) at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47) at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64) at oracle.dbtools.http.filters.Filters.filter(Filters.java:47) at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:82) at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at oracle.dbtools.rt.web.HttpEndpointBase.dispatchableServices(HttpEndpointBase.java:116) at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:81) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:722) Caused by: java.sql.SQLException: ORA-22285: non-existent directory or file for GETLENGTH operation at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:392) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:385) at oracle.jdbc.driver.T4C8TTILob.processError(T4C8TTILob.java:790) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) at oracle.jdbc.driver.T4C8TTILob.getLength(T4C8TTILob.java:206) at oracle.jdbc.driver.T4CConnection.length(T4CConnection.java:2499) at oracle.sql.BFILE.length(BFILE.java:104) at oracle.dbtools.common.jdbc.OracleBfileInputStream.<init>(OracleBfileInputStream.java:19) at oracle.dbtools.apex.OWA.downloadBFile(OWA.java:590) at oracle.dbtools.apex.OWA.getDownloadStream(OWA.java:70) at oracle.dbtools.apex.OWA.downloadFile(OWA.java:87) ... 63 more
Appreciate any help!
Thanks,
Chintan