Rem Copyright (c) 1994, 2006, Oracle. All rights reserved. Rem Rem NAME Rem ht.sql - Hyper Text packages Rem PURPOSE Rem Provide utility functions for producing HTML documents Rem from pl/sql. Rem NOTES Rem Rem Two sets of packages - one is all functions/constants (htf) Rem - one is all procedures (htp) Rem Rem A PL/SQL table of varchar2 is used to buffer output. Rem htp.print() buffers the output. Rem owa.get_page() fetches it out using htp.get_page(). Rem Rem This script should be run by the owner of the OWA packages. Rem Rem HISTORY Rem pkapasi 10/18/06 - Enhancement#5610575: Allow get_page to start over Rem akatti 08/10/06 - Fix bug# 5409563 - REQUEST_CHARSET is obtained in the proc Rem mmuppago 10/03/05 - Fix bug#4608020: suppress content-length if dad charset <> db charset Rem pkapasi 11/27/03 - Fix bug#3284896 - showpage truncates output Rem pkapasi 06/20/03 - Fix bug#1301623 : handle https in function base Rem pkapasi 05/09/03 - Add more charsets (bug#2944980) Rem pkapasi 04/21/03 - Fix bug#2915488 (incorrect Oracle charset) Rem vshimizu 12/23/02 - Perf fixes (2694343, 2698205) Rem pkapasi 10/07/02 - Perf issue with mod_plsql<902 (bug#2609772) Rem pkapasi 07/25/02 - Perf fixes (2460224, 2470207, 2482024, 2483760) Rem ehlee 06/10/02 - Fix bug# 2305168 Rem ihonda 06/10/02 - Fix bug# 2093593 Rem ehlee 10/29/01 - Fix bug# 2060664 Rem ehlee 10/17/01 - Fix bug# 2050633 Rem pkapasi 09/17/01 - Workaround any_cs bug#1994862 Rem skwong 09/04/01 - Performance fix for raw mode Rem ehlee 08/16/01 - Fix date printing problem with htp.p Rem skwong 07/20/01 - Added support for NCHAR Rem skwong 07/20/01 - Added support for RAW content transfers Rem pkapasi 06/12/01 - Merge OAS specific helper functions Rem pkapasi 01/11/01 - Fix bug#1580414 Rem ehlee 08/25/00 - Fix showpage miscalculation Rem rdecker 07/17/00 - USE PACKAGE vars FOR quot,amp,lt,gt Rem rdecker 07/13/00 - USE chr(38) IN place OF '&' FOR sqlplus Rem ehlee 05/10/00 - Add check for Gateway version 2 Rem ehlee 05/05/00 - Call owa_cache.init in init procedure Rem ehlee 01/14/00 - Add default charset support Rem rdasarat 01/12/99 - Fix 791217 Rem rdasarat 12/31/98 - Fix 788285 Rem rdasarat 11/19/98 - Add addDefaultHTMLHdr procedure Rem rdasarat 10/26/98 - Fix 735061 Rem rdasarat 06/02/98 - Fix for Content-length Rem rdasarat 04/02/98 - Add file upload/download functionality Rem rdasarat 02/03/98 - Optimize prn, add get_line, get_page... Rem rdasarat 01/14/98 - Optimize prn Rem mpal 01/06/98 - Fix bug# 607288 - Correct typo in CTARGET Rem mpal 12/23/97 - Fix bug# 563953 - Correct typo in STYLE Rem rdasarat 11/13/97 - Add init procedure Rem rdasarat 10/20/97 - Optimize htp.print and htp.prn Rem mpal 04/23/97 - Fix bug# #482019 - added escape_url for '%' Rem mpal 01/29/97 - Fix bug# #444697 - Restore pragma references Rem for anchor, anchor2, mail Rem mpal 11/15/96 - Adding formFile procedure Rem mpal 11/12/96 - Adding NLS char conversion Rem mpal 08/22/96 - HTML 3.2 support Rem mpal 08/19/96 - Fix bug #393305 Rem mpal 06/24/96 - Adding escape sequence support '%' Rem mbookman 03/11/96 - Adding NLS fixes (substrB and lengthB) Rem kireland 02/02/96 - HTML 3.0, Netscape and Microsoft extensions Rem mbookman 07/26/95 - Added mailto support Rem mbookman 05/23/95 - Full HTML 2.0 support Rem Numerous function/procedure name Rem changes for standardization Rem mloennro 09/05/94 - Creation Rem REM Creating HTF package body... create or replace package body htf as /* This function is private to the HTF package */ function IFNOTNULL(str1 in varchar2 character set any_cs, str2 in varchar2 character set any_cs) return varchar2 character set str2%charset is begin if (str1 is NULL) then return (NULL); else return (str2); end if; end; /* STRUCTURE tags */ function bodyOpen(cbackground in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is l_str varchar2(32767); begin l_str := ''; return l_str; end; /* END STRUCTURE tags */ /* HEAD Related elements tags */ function title (ctitle in varchar2 character set any_cs) return varchar2 character set ctitle%charset is begin return (''||ctitle||''); end; function htitle(ctitle in varchar2 character set any_cs, nsize in integer DEFAULT 1, calign in varchar2 DEFAULT NULL, cnowrap in varchar2 DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctitle%charset is begin return (title(ctitle)|| header(nsize,ctitle,calign,cnowrap,cclear,cattributes)); end; function base(ctarget in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is protocol varchar2(2000); begin protocol := owa_util.get_cgi_env ('REQUEST_PROTOCOL'); if (protocol is null) then protocol := 'http'; else protocol := lower (protocol); end if; return(''); end; function isindex(cprompt in varchar2 character set any_cs DEFAULT NULL, curl in varchar2 DEFAULT NULL) return varchar2 character set cprompt%charset is begin return(''); end; function linkRel(crel in varchar2, curl in varchar2, ctitle in varchar2 character set any_cs DEFAULT NULL) return varchar2 character set ctitle%charset is begin return(''); end; function linkRev(crev in varchar2, curl in varchar2, ctitle in varchar2 character set any_cs DEFAULT NULL) return varchar2 character set ctitle%charset is begin return(''); end; function meta(chttp_equiv in varchar2, cname in varchar2, ccontent in varchar2) return varchar2 is begin return(''); end; function nextid(cidentifier in varchar2) return varchar2 is begin return (''); end; function line(cclear in varchar2 DEFAULT NULL, csrc in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(hr(cclear, csrc, cattributes)); end; function br(cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function nl(cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(br(cclear, cattributes)); end; function header(nsize in integer, cheader in varchar2 character set any_cs, calign in varchar2 DEFAULT NULL, cnowrap in varchar2 DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cheader%charset is ch varchar2(2); begin ch := 'H'||to_char(least(abs(nsize),6)); return('<'||ch|| IFNOTNULL(calign,' ALIGN="'||calign||'"')|| IFNOTNULL(cclear,' CLEAR="'||cclear||'"')|| IFNOTNULL(cnowrap,' NOWRAP')|| IFNOTNULL(cattributes,' '||cattributes)|| '>'||cheader|| ''); end; function anchor(curl in varchar2, ctext in varchar2 character set any_cs, cname in varchar2 character set any_cs DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(anchor2(curl, ctext, cname, NULL, cattributes)); end; function anchor2(curl in varchar2, ctext in varchar2 character set any_cs, cname in varchar2 character set any_cs DEFAULT NULL, ctarget in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is curl_cname_null EXCEPTION; l_str varchar2(32767); begin if curl is NULL and cname is NULL then l_str := ' '||ctext||' '; return l_str; end if; if curl is NULL then l_str := ' '||ctext||' '; else l_str := ''||ctext||''; end if; return l_str; end; function mailto(caddress in varchar2, ctext in varchar2 character set any_cs, cname in varchar2 character set any_cs DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return (anchor('mailto:'||caddress,ctext,cname,cattributes)); end; function img(curl in varchar2, calign in varchar2 DEFAULT NULL, calt in varchar2 DEFAULT NULL, cismap in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL ) return varchar2 is l_str varchar2(32767); begin l_str := ''||calt||''; return l_str; end; function img2(curl in varchar2, calign in varchar2 DEFAULT NULL, calt in varchar2 DEFAULT NULL, cismap in varchar2 DEFAULT NULL, cusemap in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL ) return varchar2 is begin return(''||calt||''); end; function area( ccoords in varchar2, cshape in varchar2 DEFAULT NULL, chref in varchar2 DEFAULT NULL, cnohref in varchar2 DEFAULT NULL, ctarget in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function mapOpen(cname in varchar2,cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function bgsound(csrc in varchar2, cloop in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return('');end; function paragraph(calign in varchar2 DEFAULT NULL, cnowrap in varchar2 DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function div( calign in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function address(cvalue in varchar2 character set any_cs, cnowrap in varchar2 DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''||cvalue|| ''); end; function comment(ctext in varchar2 character set any_cs) return varchar2 character set ctext%charset is begin return(''); end; function preOpen(cclear in varchar2 DEFAULT NULL, cwidth in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function nobr(ctext in varchar2 character set any_cs) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function center(ctext in varchar2 character set any_cs) return varchar2 character set ctext%charset is begin return('
'||ctext||'
'); end; function blockquoteOpen(cnowrap in varchar2 DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; /* LIST tags */ function listHeader(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext|| ''); end; function listItem(ctext in varchar2 character set any_cs DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cdingbat in varchar2 DEFAULT NULL, csrc in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext); end; function ulistOpen(cclear in varchar2 DEFAULT NULL, cwrap in varchar2 DEFAULT NULL, cdingbat in varchar2 DEFAULT NULL, csrc in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function olistOpen(cclear in varchar2 DEFAULT NULL, cwrap in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function dlistOpen(cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function dlistTerm(ctext in varchar2 character set any_cs DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext); end; function dlistDef(ctext in varchar2 character set any_cs DEFAULT NULL, cclear in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext); end; /* END LIST tags */ /* SEMANTIC FORMAT ELEMENTS */ function dfn(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function cite(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function code(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function em (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function emphasis(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(em(ctext,cattributes)); end; function kbd(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function keyboard(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(kbd(ctext,cattributes)); end; function sample(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function strong (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function variable(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function big( ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function small( ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function sub( ctext in varchar2 character set any_cs, calign in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function sup( ctext in varchar2 character set any_cs, calign in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; /* END SEMANTIC FORMAT ELEMENTS */ /* PHYSICAL FORMAT ELEMENTS */ function basefont(nsize in integer, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function fontOpen( ccolor in varchar2 DEFAULT NULL, cface in varchar2 DEFAULT NULL, csize in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is l_str varchar2(32767); begin l_str := ''; return l_str; end; function bold (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function italic (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function teletype(ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function plaintext (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function s (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function strike (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; function underline (ctext in varchar2 character set any_cs, cattributes in varchar2 DEFAULT NULL) return varchar2 character set ctext%charset is begin return(''||ctext||''); end; /* END PHYSICAL FORMAT ELEMENTS */ /* HTML FORMS */ function formOpen(curl in varchar2, cmethod in varchar2 DEFAULT 'POST', ctarget in varchar2 DEFAULT NULL, cenctype in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return('
'); end; function formCheckbox(cname in varchar2, cvalue in varchar2 character set any_cs DEFAULT 'on', cchecked in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formFile(cname in varchar2, caccept in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function formHidden(cname in varchar2, cvalue in varchar2 character set any_cs DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formImage(cname in varchar2, csrc in varchar2, calign in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function formPassword(cname in varchar2, csize in varchar2 DEFAULT NULL, cmaxlength in varchar2 DEFAULT NULL, cvalue in varchar2 character set any_cs DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formRadio(cname in varchar2, cvalue in varchar2 character set any_cs, cchecked in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formReset(cvalue in varchar2 character set any_cs DEFAULT 'Reset', cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formSubmit(cname in varchar2 DEFAULT NULL, cvalue in varchar2 character set any_cs DEFAULT 'Submit', cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formText(cname in varchar2, csize in varchar2 DEFAULT NULL, cmaxlength in varchar2 DEFAULT NULL, cvalue in varchar2 character set any_cs DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cvalue%charset is begin return(''); end; function formSelectOpen(cname in varchar2, cprompt in varchar2 character set any_cs DEFAULT NULL, nsize in integer DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 character set cprompt%charset is begin return(cprompt|| ''); end; function formTextarea2(cname in varchar2, nrows in integer, ncolumns in integer, calign in varchar2 DEFAULT NULL, cwrap in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return(''); end; function formTextareaOpen(cname in varchar2, nrows in integer, ncolumns in integer, calign in varchar2 DEFAULT NULL, cattributes in varchar2 DEFAULT NULL) return varchar2 is begin return('