Oracle WPG_DOCLOAD
Version 21c

General Information
Library Note Morgan's Library Page Header
ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling complimentary technical Workshops on Database Security for the first 30 Oracle Database customers located anywhere in North America, EMEA, LATAM, or APAC that send an email to asra_us@oracle.com. Request a Workshop for your organization today.
Purpose Provides an interface to download files, BLOBs and BFILEs for use with the PL/SQL Gateway
AUTHID CURRENT_USER
Constants
Name Data Type Value
max_doctable_name_len PLS_INTEGER 256
mimet_col_len PLS_INTEGER 48
name_col_len PLS_INTEGER 64
Data Types TYPE parts_table IS TABLE OF VARCHAR2(256) INDEX BY BINARY_INTEGER;
Dependencies
DBMS_ASSERT DBMS_SQL OWA_UTIL
DBMS_LOB HTP UTL_RAW
Documented Yes
First Available Not known
Security Model Owned by SYS with EXECUTE granted to PUBLIC
Source {ORACLE_HOME}/rdbms/admin/wpgdocs.sql
Subprograms
 
DOWNLOAD_FILE
Signals the PL/SQL Gateway of a file is to be downloaded to the client's browser

Overload 1
wpg_docload.download_file(
p_filename IN VARCHAR2,
p_bcaching IN BOOLEAN DEFAULT TRUE);
-- Unvalidated: From an internet source of unknown reliability

GRANT execute ON display_easy_image TO public;

CREATE OR REPLACE PROCEDURE display_easy_image( p_id NUMBER ) AS
 s_mime_type VARCHAR2(48);
 n_length    NUMBER;
 s_filename  VARCHAR2(400);
 lob_image   BLOB;
BEGIN
  SELECT mime_type, dbms_lob.getlength( blob_content ), filename, blob_content
  INTO s_mime_type, n_length, s_filename, lob_image
  FROM easy_image
  WHERE image_id = p_id;

  -- set the size so the browser knows how much it will be downloading.
  owa_util.mime_header(NVL(s_mime_type, 'application/octet' ), FALSE);
  htp.p('Content-length: ' || n_length);
  -- The filename will be used by the browser if the users does a "Save as"
  htp.p('Content-Disposition: filename="' || s_filename || '"');
  owa_util.http_header_close;
  -- Download the BLOB
  wpg_docload.download_file(lob_image);
END display_easy_image;
/
Overload 2 wpg_docload.download_file(p_blob IN OUT NOCOPY BLOB);
TBD
Overload 3 wpg_docload.download_file(p_bfile IN OUT BFILE);
TBD
 
GET_CONTENT_LENGTH
Return the length of a lob to be downloaded wpg_docload.get_content_length RETURN PLS_INTEGER;
SELECT wpg_docload.get_content_length
FROM dual;
 
GET_DOWNLOAD_BFILE
Fetch the bfile to be downloaded wpg_docload.get_download_blob(p_bfile OUT BFILE);
TBD
 
GET_DOWNLOAD_BLOB
Fetch the blob to be downloaded wpg_docload.get_download_blob(p_blob OUT NOCOPY BLOB);
TBD
 
GET_DOWNLOAD_FILE (private ... do not use)
Get the name and mime_type of the file to be downloaded wpg_docload.get_download_file(p_doc_info OUT VARCHAR2);
TBD
 
GET_DOWNLOAD_FILE_RAW
Get the name and mime_type of the file to be downloaded wpg_docload.get_download_file_raw(p_doc_info OUT RAW);
TBD
 
IS_FILE_DOWNLOAD
Undocumented wpg_docload.is_file_download RETURN BOOLEAN;
TBD

Related Topics
Built-in Functions
Built-in Packages
DBMS_LOB
What's New In 21c
What's New In 23c

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2023 Daniel A. Morgan All Rights Reserved
  DBSecWorx