====== pears.WPKMaintainGetSwitchValue ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."WPKMaintainGetSwitchValue" IS
{create function WPKMaintainGetSwitchValue
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(in SwitchID char(20),in SwitchLocation char(20),in SwitchSource char(1))
returns long varchar
begin
declare rv long varchar;
declare param char(100);
declare def long varchar;
declare i smallint;
declare tp char(1);
if switchsource not in('L','P') then -- Only Literal and Params maintained in this way
return null
end if;
set rv=null;
set switchlocation=trim(switchlocation);
if switchlocation = 'Global' or switchlocation = '' then
set switchlocation=null
end if;
if switchlocation is not null then -- For maintenance we are just interested in the branch setting - we do NOT fall back to the global
select first value into rv from wpkglobalswitchsetting where wpkglobalswitchid = switchid and location = switchlocation
else
if switchsource = 'L' then
select first value into rv from wpkglobalswitchsetting where wpkglobalswitchid = switchid and location = 'Global';
if rv is null then
select value into rv from wpkglobalswitch where wpkglobalswitchid = switchid
end if
else
select value into def from wpkglobalswitch where wpkglobalswitchid = switchid;
set i=charindex(';',def);
if i > 0 then
set param="left"(def,i-1);
set def="right"(def,length(def)-i)
else
set param=def;
set def=null
end if;
execute immediate WITH BATCH OFF string('select first ',param,' into rv from params');
if trim(isnull(rv,'')) = '' then
set rv=def
end if
end if
end if;
if trim(isnull(rv,'')) <> '' then
select datatype into tp from wpkglobalswitch where wpkglobalswitchid = switchid;
if tp = 'B' then
if ucase("left"(trim(rv),1)) in('1','Y','T') then
set rv='Y'
else
set rv='N'
end if
end if
end if;
return rv
end
}