MINI MINI MANI MO
rem
rem
Rem Copyright (c) 1995, 1996, 1997 by Oracle Corporation. All rights reserved.
Rem NAME
Rem owa.sql - package of procedures called directly from OWA
Rem DESCRIPTION
Rem This file contains one package:
Rem owa - These procedures are interface procedures for
Rem the Oracle Web Agent. These procedures should
Rem not be called by an end-user.
Rem
Rem NOTES
Rem The Oracle Web Agent is needed to use these facilities.
Rem The package htp is needed to use these facilities.
Rem
Rem MODIFIED (MM/DD/YY)
Rem vtropash 12/02/15 - 22100462
Rem pkapasi 10/18/06 - Enhancement Request#5610575(add reset_get_page)
Rem pkapasi 07/25/02 - Use NOCOPY for performance (bug#2482024)
Rem ehlee 10/12/01 - Add 32k cookie support (bug#1936565)
Rem skwong 07/20/01 - Add RAW support to GET_PAGE interfaces
Rem pkapasi 06/12/01 - Merge OAS specific helper functions
Rem rdasarat 01/22/98 - Overload init_cgi_env procedure
Rem rdasarat 10/31/97 - Moving version to 4.0
Rem rdasarat 08/09/97 - Replaced OWA_INIT with OWA_CUSTOM
Rem mpal 07/09/97 - Replaced OWA_INIT with OWA_CUSTOM
Rem mpal 04/23/97 - Changed Minor Version to 1 (Fixing bug# 482019)
Rem rpang 01/27/97 - Restored PRAGMA RESTRICT_REFERENCES (bug#439474)
Rem rpang 01/27/97 - Added initialize procedure
Rem rpang 07/03/96 - Added initialzation section to touch OWA_INIT
Rem mbookman 07/09/95 - Creation
REM Creating OWA package body...
create or replace package body OWA is
/********************************************/
/* Initialize the CGI environment variables */
/********************************************/
procedure init_cgi_env (param_val in vc_arr) is
num_params number := param_val.count;
ix number;
nameIx number;
var_name vc_arr;
begin
/* Initialize cgi names */
/* Keep this list in the same order as in ndwoa.h file */
var_name(1) := 'SERVER_SOFTWARE';
var_name(2) := 'SERVER_NAME';
var_name(3) := 'GATEWAY_INTERFACE';
var_name(4) := 'REMOTE_HOST';
var_name(5) := 'REMOTE_ADDR';
var_name(6) := 'AUTH_TYPE';
var_name(7) := 'REMOTE_USER';
var_name(8) := 'REMOTE_IDENT';
var_name(9) := 'HTTP_ACCEPT';
var_name(10) := 'HTTP_USER_AGENT';
var_name(11) := 'SERVER_PROTOCOL';
var_name(12) := 'SERVER_PORT';
var_name(13) := 'SCRIPT_NAME';
var_name(14) := 'PATH_INFO';
var_name(15) := 'PATH_TRANSLATED';
var_name(16) := 'HTTP_REFERER';
var_name(17) := 'HTTP_COOKIE';
nameIx := 0;
ix := 0;
for i in 1..num_params
loop
nameIx := nameIx + 1;
if (param_val(i) is NOT NULL)
then
ix := ix + 1;
cgi_var_name(ix) := var_name(nameIx);
cgi_var_val(ix) := param_val(i);
end if;
end loop;
num_cgi_vars := ix;
end;
procedure init_cgi_env (num_params in number,
param_name in vc_arr,
param_val in vc_arr) is
j number := 0;
cookie varchar2(32000) := '';
found boolean := FALSE;
begin
for i in 1..num_params
loop
if (param_name(i) = 'HTTP_COOKIE')
then
found := TRUE;
cookie := cookie || param_val(i);
else
j := j + 1;
cgi_var_name(j) := param_name(i);
cgi_var_val(j) := param_val(i);
end if;
end loop;
if (found)
then
j := j + 1;
cgi_var_name(j) := 'HTTP_COOKIE';
cgi_var_val(j) := cookie;
end if;
num_cgi_vars := j;
end;
/*****************************************/
/* Get the output from the user's PL/SQL */
/*****************************************/
function get_line (irows out integer) return varchar2 is
begin
return(htp.get_line(irows));
end;
procedure get_page (thepage out NOCOPY htp.htbuf_arr,
irows in out integer ) is
begin
htp.get_page(thepage, irows);
end;
/* Start of OAS specific helper procedure */
procedure get_page_charset_convert (thepage out NOCOPY htp.htbuf_arr,
irows in out integer,
charset in varchar2 ) is
begin
htp.get_page_charset_convert(thepage, irows, charset);
end;
/* End of OAS specific helper procedure */
/* Add here to match the new HTP.GET_PAGE_RAW interface */
procedure get_page_raw (thepage out NOCOPY htp.htraw_arr,
irows in out integer ) is
begin
htp.get_page_raw(thepage, irows);
end;
procedure reset_get_page is
begin
htp.reset_get_page;
end;
/* Added to set package global safely */
procedure set_user_id(usr in varchar2) is
begin
IF 128 < LENGTH(usr) THEN
raise_application_error(-20567, '128 < LENGTH(usr)');
END IF;
user_id := usr;
end set_user_id;
/* Added to set package global safely */
procedure set_password(pwd in varchar2) is
begin
password := pwd;
end set_password;
/* Added to set package global safely */
procedure set_transfer_mode (tmode in varchar2) is
begin
HTP.set_transfer_mode(tmode);
end set_transfer_mode;
/*******************************************************************/
/* Initialize function - */
/* This function is called when a DCD is invoked for the first */
/* time when PL/SQL Agent starts up. */
/*******************************************************************/
function initialize return integer is
dummy number;
majVersion number;
minVersion number;
begin
-- Please ensure you update major, minor versions for every release
majVersion := 4;
minVersion := 0;
auth_scheme := OWA_SEC.NO_CHECK;
dummy := owa_custom.dbms_server_gmtdiff;
return (majVersion*256+minVersion);
end;
end;
/
show errors package body OWA
OHA YOOOO