Advanced PLSQL Web Toolkit Topics
Advanced PLSQL Web Toolkit Topics
Learning Objectives
Understand image/document processing Understand Excel document download Understand integration with web services Demonstrate Javascript integration Discuss topics for research
Image/document processing
DAD
PlsqlDocumentPath PlsqlDocumentProcedure PlsqlDocumentTablename
Image/document Processing
Document table:
NAME VARCHAR2(256) NOT NULL MIME_TYPE VARCHAR2(128) DOC_SIZE NUMBER DAD_CHARSET VARCHAR2(128) LAST_UPDATED DATE CONTENT_TYPE VARCHAR2(128) CONTENT LONG RAW BLOB_CONTENT BLOB (application specific ID) INTEGER (other application specific fields)
Image/document Processing
Download procedure:
--- orb_download_object.sql -set scan off -/*******************************************************************************************/ -CREATE OR REPLACE PROCEDURE orb_download_object /* * PL/SQL Gateway document download procedure. Referenced in the DAD * as "Document Access Procedure". * * Input: none * * Output: an object from the orb_objects table. * */ IS -object_name orb_objects.name%type := null; --
Image/document Processing
Download procedure:
FUNCTION getfilepath return varchar2 /* * Function to support the download_object procedure. * * Input: (none) * * Output: the filename part of the URL string. * */ IS -script_name varchar2(255) default owa_util.get_cgi_env('SCRIPT_NAME'); path_info varchar2(255) default owa_util.get_cgi_env('PATH_INFO'); pos number; -BEGIN script_name := script_name || path_info; pos := instr(script_name,'orb_images'); --- "orb_images" is 10 character long... -script_name := substr(script_name,pos+11,nvl(length(script_name),0)-pos-10); -return script_name; -END; --
Image/document Processing
Download procedure:
BEGIN -object_name := getfilepath; -for object_record in ( select name, mime_type, doc_size, blob_content, to_char(last_updated,'Dy, DD Mon YYYY HH:MI:SS') last_updated from orb_objects where upper(name) = upper(object_name) ) loop -- owa_util.mime_header( object_record.mime_type, false ); owa_util.mime_header( 'download/file', false ); htp.print( 'Content-Length: ' || object_record.doc_size ); htp.print( 'Conent-Disposition: attachment; filename=' || object_record.name ); htp.print( 'Last-Modified: ' || object_record.last_updated || ' GMT' ); owa_util.http_header_close; -wpg_docload.download_file( object_record.blob_content ); end loop; -EXCEPTION when others then orb_utility.report_error( 'orb_download_object', 'procedure' ); -END orb_download_object; / show errors
Image/document Processing
Document upload:
Orb_objects_upd.sql
Odtug_authorize.sql /* * odtug_authorize.sql * * odtug_authorize database procedure definition script * */ set scan off -CREATE OR REPLACE PROCEDURE odtug_authorize ( card_type in varchar2, card_number in varchar2, card_first_name in varchar2, card_last_name in varchar2, card_address in varchar2, card_city in varchar2, card_state in varchar2, card_postal_code in varchar2, card_phone in varchar2, card_expiration in varchar2, charge_amount in number, charge_description in varchar2, authorization_code in out varchar2, authorization_sub_code in out varchar2, authorization_reason_code in out varchar2, authorization_reason_text in out varchar2, authorization_approval_code in out varchar2, authorization_address_code in out varchar2, authorization_transaction_id in out varchar2, authorization_message in out varchar2, test_mode in boolean default FALSE ) /* * Procedure: odtug_authorize *
Javascript/AJAX
Examples
Application Definition Tool (ADT).